{"group":{"id":1,"name":"Community","lockable":false,"created_at":"2012-01-18T18:02:15.000Z","updated_at":"2025-12-14T01:33:56.000Z","description":"Problems submitted by members of the MATLAB Central community.","is_default":true,"created_by":161519,"badge_id":null,"featured":false,"trending":false,"solution_count_in_trending_period":0,"trending_last_calculated":"2025-12-14T00:00:00.000Z","image_id":null,"published":true,"community_created":false,"status_id":2,"is_default_group_for_player":false,"deleted_by":null,"deleted_at":null,"restored_by":null,"restored_at":null,"description_opc":null,"description_html":null,"published_at":null},"problems":[{"id":56573,"title":"IQpuzzler Challenge #2: Find all possible solutions on an empty 4-by-5 board with 5 pieces, rotating and flipping pieces allowed","description":"We are playing a simplified version of IQpuzzler, with a smaller board of 4-by-5 spaces and just 5 pieces, as shown in the picture:\r\n\r\nYou are provided a cell array with one cell per piece. Each cell contains an N-by-M matrix with zeros and one unique value (the piece number) representing the positions of the 3 to 5 elements that define each piece. In our case, the pieces are provided as\r\npieces={ [1 1;\r\n          1 0],...\r\n         [0 2;\r\n          0 2;\r\n          2 2],...\r\n         [3 3 3;\r\n          0 3 0],...\r\n         [4 4 0;\r\n          0 4 4],...\r\n         [5 5 5;\r\n          5 5 0] };\r\nPlease note that the orientation of each piece in your solutions might be different from the one provided as input. For example, the red piece (number 4) was flipped from left to right before being placed on the board. The pieces can be rotated in steps of 90 degrees, flipped vertically or horizontally.\r\nYour solution set needs to be provided as a 3-D array with 4 rows, 5 columns and N layers, where N is the number of possible arrangements of the given pieces. The order of your solution set along the 3rd dimension does not matter, as long as it provides all valid solutions without repetitions and without symmetric solutions (180° rotations or flippings of other solutions).\r\nFor example, the solution above would be represented as\r\n[5 5 5 2 2;\r\n 5 5 4 4 2;\r\n 1 4 4 3 2;\r\n 1 1 3 3 3]\r\nPlease provide your entire search algorithm, not just hard coded solutions.\r\nHint: Maybe you can reuse some functions from the preparation phase. You can find a C++ implementation for the entire puzzle on https://github.com/deverw/IQpuzzler","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 973.417px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 486.708px; transform-origin: 407px 486.708px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 376.4px 7.91667px; transform-origin: 376.4px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWe are playing a simplified version of IQpuzzler, with a smaller board of 4-by-5 spaces and just 5 pieces, as shown in the picture:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 245.917px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 122.958px; text-align: left; transform-origin: 384px 122.958px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" style=\"vertical-align: baseline;width: 320px;height: 240px\" src=\"data:image/jpeg;base64,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\" data-image-state=\"image-loaded\" width=\"320\" height=\"240\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 31.5px; text-align: left; transform-origin: 384px 31.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 380.192px 7.91667px; transform-origin: 380.192px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eYou are provided a cell array with one cell per piece. Each cell contains an N-by-M matrix with zeros and one unique value (the piece number) representing the positions of the 3 to 5 elements that define each piece. In our case, the pieces are provided as\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 224.767px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-end-end-radius: 4px; border-end-start-radius: 4px; border-start-end-radius: 4px; border-start-start-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; margin-block-end: 10px; margin-block-start: 10px; margin-bottom: 10px; margin-inline-end: 3px; margin-inline-start: 3px; margin-left: 3px; margin-right: 3px; margin-top: 10px; perspective-origin: 404px 112.383px; transform-origin: 404px 112.383px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 53.9px 7.91667px; tab-size: 4; transform-origin: 53.9px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003epieces={ [1 1;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 69.3px 7.91667px; tab-size: 4; transform-origin: 69.3px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 57.75px 7.91667px; transform-origin: 57.75px 7.91667px; \"\u003e          1 0],\u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(14, 0, 255); border-block-start-color: rgb(14, 0, 255); border-bottom-color: rgb(14, 0, 255); border-inline-end-color: rgb(14, 0, 255); border-inline-start-color: rgb(14, 0, 255); border-left-color: rgb(14, 0, 255); border-right-color: rgb(14, 0, 255); border-top-color: rgb(14, 0, 255); caret-color: rgb(14, 0, 255); color: rgb(14, 0, 255); column-rule-color: rgb(14, 0, 255); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(14, 0, 255); perspective-origin: 11.55px 7.91667px; text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); transform-origin: 11.55px 7.91667px; \"\u003e...\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 53.9px 7.91667px; tab-size: 4; transform-origin: 53.9px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e         [0 2;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 53.9px 7.91667px; tab-size: 4; transform-origin: 53.9px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e          0 2;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 69.3px 7.91667px; tab-size: 4; transform-origin: 69.3px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 57.75px 7.91667px; transform-origin: 57.75px 7.91667px; \"\u003e          2 2],\u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(14, 0, 255); border-block-start-color: rgb(14, 0, 255); border-bottom-color: rgb(14, 0, 255); border-inline-end-color: rgb(14, 0, 255); border-inline-start-color: rgb(14, 0, 255); border-left-color: rgb(14, 0, 255); border-right-color: rgb(14, 0, 255); border-top-color: rgb(14, 0, 255); caret-color: rgb(14, 0, 255); color: rgb(14, 0, 255); column-rule-color: rgb(14, 0, 255); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(14, 0, 255); perspective-origin: 11.55px 7.91667px; text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); transform-origin: 11.55px 7.91667px; \"\u003e...\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 61.6px 7.91667px; tab-size: 4; transform-origin: 61.6px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e         [3 3 3;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 77px 7.91667px; tab-size: 4; transform-origin: 77px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 65.45px 7.91667px; transform-origin: 65.45px 7.91667px; \"\u003e          0 3 0],\u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(14, 0, 255); border-block-start-color: rgb(14, 0, 255); border-bottom-color: rgb(14, 0, 255); border-inline-end-color: rgb(14, 0, 255); border-inline-start-color: rgb(14, 0, 255); border-left-color: rgb(14, 0, 255); border-right-color: rgb(14, 0, 255); border-top-color: rgb(14, 0, 255); caret-color: rgb(14, 0, 255); color: rgb(14, 0, 255); column-rule-color: rgb(14, 0, 255); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(14, 0, 255); perspective-origin: 11.55px 7.91667px; text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); transform-origin: 11.55px 7.91667px; \"\u003e...\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 61.6px 7.91667px; tab-size: 4; transform-origin: 61.6px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e         [4 4 0;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 77px 7.91667px; tab-size: 4; transform-origin: 77px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 65.45px 7.91667px; transform-origin: 65.45px 7.91667px; \"\u003e          0 4 4],\u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(14, 0, 255); border-block-start-color: rgb(14, 0, 255); border-bottom-color: rgb(14, 0, 255); border-inline-end-color: rgb(14, 0, 255); border-inline-start-color: rgb(14, 0, 255); border-left-color: rgb(14, 0, 255); border-right-color: rgb(14, 0, 255); border-top-color: rgb(14, 0, 255); caret-color: rgb(14, 0, 255); color: rgb(14, 0, 255); column-rule-color: rgb(14, 0, 255); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(14, 0, 255); perspective-origin: 11.55px 7.91667px; text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); transform-origin: 11.55px 7.91667px; \"\u003e...\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 61.6px 7.91667px; tab-size: 4; transform-origin: 61.6px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e         [5 5 5;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 73.15px 7.91667px; tab-size: 4; transform-origin: 73.15px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e          5 5 0] };\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 10px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 10px; perspective-origin: 384px 31.5px; text-align: left; transform-origin: 384px 31.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 361.617px 7.91667px; transform-origin: 361.617px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003ePlease note that the orientation of each piece in your solutions might be different from the one provided as input. For example, the red piece (number 4) was flipped from left to right before being placed on the board. The pieces can be rotated in steps of 90 degrees, flipped vertically or horizontally.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 84px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 42px; text-align: left; transform-origin: 384px 42px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 363.042px 7.91667px; transform-origin: 363.042px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eYour solution set needs to be provided as a 3-D array with 4 rows, 5 columns and N layers, where N is the number of possible arrangements of the given pieces. The order of your solution set along the 3rd dimension does not matter, as long as it provides \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 58.7px 7.91667px; transform-origin: 58.7px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eall valid solutions\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 1.94167px 7.91667px; transform-origin: 1.94167px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 62.5917px 7.91667px; transform-origin: 62.5917px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003ewithout repetitions\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 15.5583px 7.91667px; transform-origin: 15.5583px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e and \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 94.875px 7.91667px; transform-origin: 94.875px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003ewithout symmetric solutions\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 93.0417px 7.91667px; transform-origin: 93.0417px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e (180° rotations or flippings of other solutions).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 178.167px 7.91667px; transform-origin: 178.167px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eFor example, the solution above would be represented as\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 81.7333px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-end-end-radius: 4px; border-end-start-radius: 4px; border-start-end-radius: 4px; border-start-start-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; margin-block-end: 10px; margin-block-start: 10px; margin-bottom: 10px; margin-inline-end: 3px; margin-inline-start: 3px; margin-left: 3px; margin-right: 3px; margin-top: 10px; perspective-origin: 404px 40.8667px; transform-origin: 404px 40.8667px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 42.35px 7.91667px; tab-size: 4; transform-origin: 42.35px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e[5 5 5 2 2;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 42.35px 7.91667px; tab-size: 4; transform-origin: 42.35px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e 5 5 4 4 2;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 42.35px 7.91667px; tab-size: 4; transform-origin: 42.35px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e 1 4 4 3 2;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 42.35px 7.91667px; tab-size: 4; transform-origin: 42.35px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e 1 1 3 3 3]\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 10px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 10px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 229.9px 7.91667px; transform-origin: 229.9px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003ePlease provide your entire search algorithm, not just hard coded solutions.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 373.95px 7.91667px; transform-origin: 373.95px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eHint: Maybe you can reuse some functions from the preparation phase. You can find a C++ implementation for the entire puzzle on \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://github.com/deverw/IQpuzzler\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003ehttps://github.com/deverw/IQpuzzler\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function solutions = IQpuzzler2(pieces)\r\n  y = x;\r\nend","test_suite":"%%\r\npieces={ [1 1;1 0],[0 2;0 2;2 2],[3 3 3;0 3 0],[4 4 0;0 4 4],[5 5 5;5 5 0] };\r\n[r,c]=deal(4,5);\r\nboard=zeros(r,c);\r\nnsol=14;  % confirmed by brute force\r\ntic;\r\nsolutions=IQpuzzler2(pieces);\r\ntoc;        % Just curious: Can you beat 1s?\r\nassert(ndims(solutions)==3,'3-D array expected.');\r\nassert(size(solutions,1)==r,'%d rows expected.',r);\r\nassert(size(solutions,2)==c,'%d columns expected.',c);\r\nassert(size(solutions,3)==nsol,'%d solutions expected.',nsol);\r\nfor n=1:nsol\r\n    s=solutions(:,:,n);\r\n    assert(isequal(board(board~=0),s(board~=0)),'Solution %d: Fixed pieces on input board expected.',n)\r\n    assert(nnz(s)==r*c,'Solution %d: Full board expected.',n);\r\n    bsum=0;\r\n    for p=1:numel(pieces)\r\n        piece=pieces{p};\r\n        pn=max(max(piece));\r\n        bsum=bsum+pn*nnz(piece);\r\n        assert(nnz(s==pn)==nnz(piece),'Solution %d: Number of elements of piece %d does not match.',n,pn);\r\n        arr=false;\r\n        orientations=rotflip2d(piece);\r\n        for o=1:numel(orientations)\r\n            if nnz(conv2(1*(s==pn),rot90(orientations{o},2),'valid')==sum(sum(piece)))\u003e0\r\n                arr=true;\r\n                break;\r\n            end\r\n        end\r\n        assert(arr,'Solution %d: Piece %d arranged incorrectly.',n,pn);\r\n    end\r\n    assert(sum(sum(s))==bsum,'Solution %d: Original piece numbers expected.',n);\r\n    for m=n+1:nsol\r\n        assert(~isequal(s,solutions(:,:,m)),'Solutions %d and %d are identical.',n,m);\r\n        assert(~isequal(fliplr(s),solutions(:,:,m)),'Solutions %d and %d are symmetric.',n,m);\r\n        assert(~isequal(flipud(s),solutions(:,:,m)),'Solutions %d and %d are symmetric.',n,m);\r\n        assert(~isequal(rot90(s,2),solutions(:,:,m)),'Solutions %d and %d are symmetric.',n,m);\r\n    end\r\nend\r\n\r\nfunction orientations=rotflip2d(piece)\r\n% Returns all non-identical orientations of a 2-D matrix that can be produced by rotating or flipping it.\r\n% Input is an M-by-N matrix. Output is a 1-by-P cell array containing P unique M-by-N or N-by-M matrices.\r\n    orientations=cell(1,8);\r\n    orientations{1}=piece;\r\n    for n=2:4\r\n        orientations{n}=rot90(orientations{n-1});\r\n    end\r\n    orientations{5}=fliplr(orientations{4});\r\n    for n=6:8\r\n        orientations{n}=rot90(orientations{n-1});\r\n    end\r\n    d=false(1,8);\r\n    for p=1:7\r\n        for q=p+1:8\r\n            if isequal(orientations{p},orientations{q})\r\n                d(q)=true;\r\n            end\r\n        end\r\n    end\r\n    orientations(d)=[];\r\nend\r\n%%\r\nfiletext = fileread('IQpuzzler2.m');\r\nassert(~contains(filetext,'str2num'));\r\nassert(~contains(filetext,'str2double'));\r\nassert(~contains(filetext,'regexp'));\r\nassert(~contains(filetext,'evalc'));","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":2414210,"edited_by":2414210,"edited_at":"2022-11-10T17:57:09.000Z","deleted_by":null,"deleted_at":null,"solvers_count":3,"test_suite_updated_at":"2022-11-10T17:57:09.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2022-11-10T10:54:03.000Z","updated_at":"2022-11-10T17:57:09.000Z","published_at":"2022-11-10T11:58:23.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWe are playing a simplified version of IQpuzzler, with a smaller board of 4-by-5 spaces and just 5 pieces, as shown in the picture:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"240\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"320\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYou are provided a cell array with one cell per piece. Each cell contains an N-by-M matrix with zeros and one unique value (the piece number) representing the positions of the 3 to 5 elements that define each piece. In our case, the pieces are provided as\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[pieces={ [1 1;\\n          1 0],...\\n         [0 2;\\n          0 2;\\n          2 2],...\\n         [3 3 3;\\n          0 3 0],...\\n         [4 4 0;\\n          0 4 4],...\\n         [5 5 5;\\n          5 5 0] };]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePlease note that the orientation of each piece in your solutions might be different from the one provided as input. For example, the red piece (number 4) was flipped from left to right before being placed on the board. The pieces can be rotated in steps of 90 degrees, flipped vertically or horizontally.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYour solution set needs to be provided as a 3-D array with 4 rows, 5 columns and N layers, where N is the number of possible arrangements of the given pieces. The order of your solution set along the 3rd dimension does not matter, as long as it provides \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eall valid solutions\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ewithout repetitions\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ewithout symmetric solutions\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e (180° rotations or flippings of other solutions).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor example, the solution above would be represented as\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[[5 5 5 2 2;\\n 5 5 4 4 2;\\n 1 4 4 3 2;\\n 1 1 3 3 3]]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePlease provide your entire search algorithm, not just hard coded solutions.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eHint: Maybe you can reuse some functions from the preparation phase. You can find a C++ implementation for the entire puzzle on \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://github.com/deverw/IQpuzzler\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ehttps://github.com/deverw/IQpuzzler\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.jpeg\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.jpeg\",\"contentType\":\"image/jpeg\",\"content\":\"data:image/jpeg;base64,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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"}],"problem_search":{"errors":[],"problems":[{"id":56573,"title":"IQpuzzler Challenge #2: Find all possible solutions on an empty 4-by-5 board with 5 pieces, rotating and flipping pieces allowed","description":"We are playing a simplified version of IQpuzzler, with a smaller board of 4-by-5 spaces and just 5 pieces, as shown in the picture:\r\n\r\nYou are provided a cell array with one cell per piece. Each cell contains an N-by-M matrix with zeros and one unique value (the piece number) representing the positions of the 3 to 5 elements that define each piece. In our case, the pieces are provided as\r\npieces={ [1 1;\r\n          1 0],...\r\n         [0 2;\r\n          0 2;\r\n          2 2],...\r\n         [3 3 3;\r\n          0 3 0],...\r\n         [4 4 0;\r\n          0 4 4],...\r\n         [5 5 5;\r\n          5 5 0] };\r\nPlease note that the orientation of each piece in your solutions might be different from the one provided as input. For example, the red piece (number 4) was flipped from left to right before being placed on the board. The pieces can be rotated in steps of 90 degrees, flipped vertically or horizontally.\r\nYour solution set needs to be provided as a 3-D array with 4 rows, 5 columns and N layers, where N is the number of possible arrangements of the given pieces. The order of your solution set along the 3rd dimension does not matter, as long as it provides all valid solutions without repetitions and without symmetric solutions (180° rotations or flippings of other solutions).\r\nFor example, the solution above would be represented as\r\n[5 5 5 2 2;\r\n 5 5 4 4 2;\r\n 1 4 4 3 2;\r\n 1 1 3 3 3]\r\nPlease provide your entire search algorithm, not just hard coded solutions.\r\nHint: Maybe you can reuse some functions from the preparation phase. You can find a C++ implementation for the entire puzzle on https://github.com/deverw/IQpuzzler","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 973.417px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 486.708px; transform-origin: 407px 486.708px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 376.4px 7.91667px; transform-origin: 376.4px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWe are playing a simplified version of IQpuzzler, with a smaller board of 4-by-5 spaces and just 5 pieces, as shown in the picture:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 245.917px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 122.958px; text-align: left; transform-origin: 384px 122.958px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" style=\"vertical-align: baseline;width: 320px;height: 240px\" src=\"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCADwAUADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD86H17Ux0eTFQ/21qTZyXNdXceG78TeWs1kAMjIfrj8OnFK3hKdVjZtSsRu7KSSDXkKpDsdvJK5yn27UJMEswxS/bL05G9sHrXTv4VlbhtWsx6YDVG3hcxtj+1LduP4UaqVSPYlwZzkd5cqw3ZNaNtqjwqCV9sCu08L/BnWfGlyLfS3W4HedY2C165ov7EupSQq2p60sfcrCnSuujGVX4EeHj8dhMEv9oqWPnRvEzRqRjaPpVGbxQhzk4r6lvv2KbVIz5WtSlsd0GK8r8a/si+JNFjaaxnj1BF52qMN+Vel9WrRV+U+ep59ldaXJGr+h5P/wAJIjcVXbxD6dKr6p4Tv9FvHt7uNreRcgrIpFUv7PYcF/0rmatoz6OnGnNc0HdM0013nO3NTr4ixgbcfSsqPT2x9/8ASvSfhj+z74j+KEy/2fCyWmcNdSJ8g9qSV9ETVdOlHmqOyOTHiI9wR+FMbxMFHI/Svrrw/wDsF6fDbo2r65cTyY5W3UKo9qu6x+xB4XktRHb3t5E69HJBP0rtp4eo1oj5KtxDlVKXK6m3kfGL+Jkbgj9Krv4gHOFr2/x7+xrr3h+N59IvBqcS8+Xja/5V4TqPhu60e6e2vI5bedDhkdMGs6lKdP4ke3gsbgccr4eakO/t05zipo/EJ4G2swaf/tt+VSx2K8BmYj2Arn0PZ9nE2E8SM3G2nN4k2jG0/lXqfwp/ZV8QfEyGK7QS6ZprD/X3Cgbh/sivonw9+wT4Us4UOqXt5qEuOTuCL+Qrop05y22Pmsfm2XYB2rT17LU+H28Shv4SPwqvJryNnivu7Wv2HfAtxCy2wvLR8feSXOPzFeGfEj9inWPDsMt3oN5/asKc+Sy7ZB/jXS8LVSuebheJMoxE1Dn5X5nzvLqxbgLVZr9z2AqzfeHLnTbmS3uUkgmjOGjkXBGO1V/7NP8AfOPpXG9HZn3FPlcVKDugXUJFOOSaT7ZI3UdKnh01N2HkZfQhauL4fDAFZix9AvNdWHpVcTNU6MbvyNXJRV2zMN83emG+OfatpfDI6vJgVFN4fj/hc19tR4NzmrDm9n+Jy/W6V7JmWLo/hThfFTkDmnzaNJH0aoPsL9nH5V8zmGV4zLZcuKp8p0QqRn8LLI1R/Tij+0GJzUAsZOm7P4VZj03dCf3mH4wMcV5ClY2GfbmUjHH4U37YG+9kn2qxFo0sjDBDCrZ8NswDMwX2FfS4HIszzBc1Ck2jmnWp092Za3jLypKn1pPtXHNaMmgYHD1Uk0uWMfeGBXRjeFc2wkOepR08tRQxFOWiZEtx3yPzp63Dd6QWzlvvj8qkWxZujKK+NlFxdpaHUC3B7NirMUm4ffApn9mNt++u70o+xtxjaOMdetZgeoQ6ZNNO8TSwwOoyRLIFFa3/AAr/AFi5thPaG1vlYbttvOjNwPSvH7S6kndhJIzsepY5zWmbfUIGjuYZJLZ8ZV4yVFeROjOOzR2xqRe6OpvrG80sobmEw7uitjIwa7z4K/C67+KHiNYhuj0+Ehp5Mf8Ajoryu38TXtwyWurbrkrwsx++D7nuPrX6Gfs0+CYPC/w/spQgE92POdscnPStacf5zws4x31HDSqQ36HoHhDwHp3hXS4bOwtkhiQAZUAE+9dXHoUMluWKs7Y6KKjWRYl9farH/CSS28JRUTHavbw84ppN2R+BYqdTESdSq7tnIapp7W7ENGyemRiubvoVOQQMV2uveIJNTRFkRE2jGVFcVqTjmvbjWgnaLufP1aD3R5T8UPhRpHjixkSeFY7kDMcyABgf8K+MfGPg+88F61Lp96mNpyrgfeHrX6BTt5jFc1xHj74IxfE63jVSsV3H9yXGfwrGvRjWV47n1GQcQVcsqqlXd6b/AAPn79nT4In4t+IDLdRlNGs2XzWAxv8A9mv0R8N+E7Dw7pkFlYW0dtbRKFVI1AA4rlPgz8M7X4Y+D7bSrcK0q/NLIFxvY969FjmEfJGfavF5lTlyntZ1mkswqctN/u0WG0VWtz5atI+O3QVzeqabLbYEkZTIyK6FvEFxDHsQqB/u1i6xrE9+wMrg7RgYGK9OlWpxhdy1PiqtDm6HH6lbjnNeK/GL4M6b48095EjS31FRlJ1XH4Gvb9SkGCa5q4w7FSeK7lUjUjyyOSjOtgKqrUXZo/Ovxd4PvPB2sTabfKvmx87lOQw9a9w/ZV/Z/X4gamNf1mDOj2z/ALmFhxM4/oK9i8Wfs52HxL1iC8Nw1rIvEhRQd6+le/8AgHwfZeC/D9ppVlGEgt12gAdfevHrUVRfN0P1L/WtYjAcsH+9ej8je0nRYNPto4IYlijQbVVRgD0FbLaSWixGrO3rjiq0Mmzk81Y/tyeFSEIC9MYrOlWXNq9D4CpTdRuUtWZWoaXJb/6xCoxXN6haqc8V0+papPeACV8gcAVz943Br1Y4iKl7rPJq4VvY+Z/2i/gjaeLdNm1XT4Fi1aAFiUH+sAHQ+9fFk9qbeV4nQo6HaykdK/TzXgPLcEZGK+JPjH4Tg0nxldvDGqx3H7wKBxk1pWw31i06e5+i8I5xVpSeCru8eh5DbWZmkUY5PSuo0vw81w0USlVaQ7QTSxaMIl8xDmReSAOK1tCvI7WZZp+dpyqr1+lfunDeV0MswqlFXm92fc1sX9YlZbHTSfA/UJrWNrFWvLjP7wBflH0rnvFnwl13wrAk1/YtFEwyGHSvSLP48atptq0NjawRLjG5hk9K5rxp8XfEHjKwjs9QuI2gXoqoAR7Zr6+jisTfXY8ic66q2ivdPG7i1dXwVOfpVCRBHJyP/rV1txtboPxrE1CwaSQGNdxPZanNMPh80w7oYiO57mHrNMzvLXjAq1Z2pllCqOT6dqv6db/bLXyY7YtOOGbFXNPU29w5CYI6jFflGRcIKljJVMYrxjsu53YjG6csC7pHhm4vLiK3gizJJ0rpW+Fer+YEitHumx1QZANWfCOoJZ38V9cSbAmCFA5PtXq1r8e10ezMVnpUTtn78hx+Nfr31idC0KMdD53EynGPNDVnhfiD4f6t4fTN/ZPb5/vCuPuLJtxXbXs3xE+KupeOtq3qRRhegjXFebzKGbIr0KeJlOH71Cw1Wra80cqVRVEbxjOeG7/Sk8lV7Vp6zZhY/MHBrDutY8tfKVFOeCTwRX4Fxzk9GhOONw6snuvM+swVbnXKy8JIdo3FRSq1uxwCprntpXZIfmDc1PGrM2VH5V+Q2PULNhbsqRtjAc4Df4V9LfA34W6Z8WNDuLCExLqWn2s19O0zbcouMKvPJwDxXgui6OlwVRm2FT/FwAPXpXceHdWuvCskjaZPLExG0SISpII6fSuLF4epVpvk3N6FWFOXvEtxpOiN44s4dUuDp2lrdhJJIo97pHkDGO9fop4Q+x2uh2cVg5ksljURMwwSvY4/Kvy38V30kl0sjOHlY7iwPOc19+/s+eMk8RfDbSJw+XSIRuM8ggdP0rzJQqUKcZSZ87xFFV8PaK6ntSybuAMn2qjeOY8huDVnw54gi0jWLW7lhW4jibcY26H2qr4w16LWNYuruGJYElbcI14A9qiGOtNR6H5m8vTpud9exh31wFyc1zWpXI+atDUbz5cdhXM6jdBgea9aljF3PNngirJd7WNd/wDDu6EkcqrGsjYyTjJFeR3V4Y3Jzjmt3wP4wfTLySNJ/L8wbSM4yPSvQljpQg5I8f6jGVVKR7fbzk54x7CpUZppAiAk9AAM1z2mav5i70fqMcVs6F4gbRNUgvAiyeU27awyDXzMsc3eXU9+GDjdR6C3yvbsUkRkcfwsMEViXlwFzWv4s8TNr2qTXrAI0hztXgCuPv7zc2Sa2w+Ocopz0NMRgYxm1B3RW1K6GDzXM3F4Q5wfwq1qd7gEZ7Vxupat5UhwcGvXpY5dDz6mX8y2PZvhrcS3hkjhi819pJAXJAHeusjkPmEdPYV4R8O/GjWeovGs5jdhj5WwSPSvXNO1LzsOrc+tedjczk5qD2KoZXGnT5kdJCxkYKoJPQAUX1vNZyFJo2jfGdrDBqnY6o+n3Uc6H50O4GrfibxVP4ivPtNwR5m0L8oA6DpXn/XpKaS2O+OBhKnJyevQyrm4Hasq7m4OeKdcXQrF1G+CqeeK9WnjY9zg+oyk9jC8SXpWNsHt2r5P+O18smq2zg88ivffHPiAW8L4fHFfIXxZ8TfbdcijDfc96+vyzHLmjc9PLsrlHEqaRWtLiWZ/LiyWYY2r3qzouk3Go33kRqzSHgKBz1rndL1J7e4jkjkKOpzuHGK9A+GXj2Lwb4stdXuoluFt5hIVZQQxHSv2+jmfJSvDV2PusPhIqdpFbxF4fvfDMgS+geA4yQykEfhXL311Fx5cu/1GMYr239o39oWy+MF8l5Dp0FjiIRlY0Azivn+KVG3HGR19K6cszariKPPiIcj7HZjMLCnO1J3Q97zaBkHFZ818/nKYC2/ou3rUlxdKAcdKxpNQeCVZIztdGyGHauuvmcYrcxp0T0j4Z6pcSa00UNmk07RMpQJknjrisy6nlbVriKOPa7SMCijnr0xVP4a/EK98G+KE121kUXsWfmYAg5BBGPxqVPEVxceIn1VSqXUkxlyF4GTzx+Nedhc65qvL0saTwkUuY6Xw7pV3qtwtvFG0krcKijn6Vc1bT5tJuXtrz/RZk6rIMH6VvfB/x+ngz4gaZrNxbQ3K28okZJANreta37UPxP0X4n+MBqmk2Menhx80cYwD710POqixdOioXjJavsbfU4OjKV9UeRXF0GY4YH6VWa8C4z0qLevc4qC8nQRnB+lfSSx0Etzy402JfXCyxtg8VzmqWf2GYhwC5XO30rVjY3DJAgy7mqP2drq+dHJODivyvi7MI1cP7Jdz2cFT5ZDNNs/PXLKPYV0miaDFeXaxuCM8DaKk03wrdXKztZo88Nv80pX+Bcjk102i6f8AZ3SRUPynPWvxiV2tD21ZPU9E+E3wl8P+L1kkvdaWyVUzuCjr6YrR8dfDHQfB+lr5+tw+egZh5ZBMi/wivnjQNY1WC4hsop5IhuwEZioH+Fdzc6Lc65Ky6lfCadFARYGDs/HTPQV9XB0JUORQ94+XqKtGsp8/unDeJLqC8vClqmYUOA+OW969z/ZY+IUvhu6l029fZp90/wC5LdFavJ7vw1HDIsIPlpnLDIJ+hNblvClusQhygQfKF4x718visOpRdOR7GmIp8r2Pv+HUBJGGByMZBFRzTM3Tmvnr4WfHSGyEWleIZNsY+WO69PY19B6XJHrCx/YGFykx/dspBBzX53Ww9XDVOSR8njMLLD620Mm+ZjmufvOc7uBXS6xG9g0iSLhkODXDa5r0NspDNivSwtNy1Pl69ZR0aMPXr4RZAIBryb4lfESXwjY+bbSBbxuI/ar/AI++JmnaJHI0kyvKPuxqea+ZvFfiq68Xak88xwvREHYV9NGn7vKzXKssnjKyqzj7i/E+xP2X/j/L4zjl0jWZlGqRHcjDjzF/xr6aW8E0QIPNflX4T1ybwvfQXtnuhu4mDLIp5+lfZ/wf/aO07xVDBY6lKtnqWNuG4V/cV8/j8HKMuektD6fMMu5P3lFadj3yZnKmsW8Zua6HT7OTV1AhAOV3ZzgYxXP6zutN25SK8mnCTdj5z2nKtUcvq0+xXz6V5d4o1r7NISGArpfGXjG00+OTzJAm0ZJPGK+WviZ8XFv5JrXTn3Z+VpR0H0r3cNh5X1O7D05Yp8sEN8afGbVtN8Rf8SW58owHlgMgn0+lfX37PHxeHxD8Jwy3DLHqcI2Txjjn1+lfndZrum82Ubz1PvXo3w7+I134F1yHULJvLYYDxn7jr6V04zBKrStFe8fYf2bS9j7NLU/ThboPEDmoJrglTzgV5R8N/jdovjSxi8u4WC6xhreQgEfT2rvJdViZNwdcfUV8FWlVoy5ZHirA8jtJE91c4HWua1rUBDCxJ/CjVvElraxktKo49RXjXxI+L2naPbSlrpA2OFDDNdOGdWpJJHXDBQ3sc78XfGkdnDL+8AwOa+VtYvJtbv3uASSzZH9K1vGnji58ZagxG5bbPC+tULVxbqB5YxX6LhITo01fc9bDYWNN8zQRSvHtB4NasOryi1MBI8otvK4GelZV1JHJynB7io4bkI2Ca+5wGac0FCb1OuVHlldG9Or3FsZwhMSnaW9OKyZnZc44FL/aG1cA8enaqc14D3x7V7azGS6g6EWEhwu4tx0/yKzZmM0myMbvTFOmmMzYB4qezjWE7sZauDF5ry09HqTGjZ6EemwzxzlXXaG6ZrYt5zGw7EVWu50ePJGw+o9ahS8Lbc9v4vWvDwGZSjU/eG1SmraHUw61IRGrEbUGBjAxUN9JLtDurAOPlbsax7dmkb5RXTXHg/WI9Ft7+S3kFnLxGxBwfXFfe0cU7KSZxOLd0YDXLswGcVXmlkJ2j5j6CluLaeNgpGOeO1Vgr+aVzjBxxTxmPlRhdyM4U+Yms7eW4csh5UcEVNGps5A+7ccc47Vp6dJHbwhdmPU+tNuLXzGaSNVLY+6a/N8bi5Yqd3sd8IKK0Oi8J65DHeRuQu/K5WUZQ/UV9ReF/hL4JvNEtb+48UwgyjMsagDyzjpXyl4Z8Lf2zkm5S0Ze8mcfnWhcafqljbyi1u0njUlSI5M/jW2CVOm+epHmR52MdSouWnPlZq33iIaow+2WFpdSKP8AXeSA35jrUCXAfJWFYR0+XPFcRZ/EbWYmJtBbxZOcCEH+dblv8aNU2+Xqml2GoREbSWt/Lf8ABlxg14csVXjsj1lhaJemmEch3n6Yq7ZziYDoBjg1T+3aV4mAfTWe2lAy9rMRkfQ9xXpPwP8AhTcfEPXkgk3LpluQZ5AMZ5+7SjV9oZ13HCwc5fCjK8I/DXW/Hlx5em2rGPOGmZSEFfZfwt8E3HgPwnZ6bNKbmaIZMnpnsK7Hwz4PsdBsorOygS3t41wAoA/Guph0m0+zliJJWx91RxXTHD0qludXPxrOuIq+MvSw+kfxPPdatxfIUZFHuBzXlvjD4fy30MhgfD4OPrXsmqRvC53RFB1AIxWBdYfKmvXjhaHLblPzmeMxKldyPzb+K3w18R+FdZnl1KGSWB3JWdeVI/pXEWsHTjmv0u8VeGbLXrGa2u4EnhcYKsB6V8R/Fr4WyeAPEB8kFtOnO6JsdPavPrYX2fwbH7Fw7xNDHJYauuWa28zz+K1JxxXtXwd/Zx8R+OL62vxnTtNVlcTsCC3I+6K6X9lr4Gr4+1Ua3qsO/SLR8JGw4lcf0Ffeek6Hb2NvHFEiwxoMKqrgD2rBU4vSR2Z5xB9R/c4dXm/wMfR9Nk0fT4LdTuMaBdzd8DrVHWLV9QUiVVxjHyrXe/2VF9mJQNI+Ow4Fc7qFpJGcOhX6iu/D4ejFaQPxjFYnFylzykfOXxf+C0vizR7mKxm8mdl+XPA+lfD/AIs+Hur+B9Ve11W1eBwflZh8rfQ1+p9zGpJDAV538TvhvpnjjRZrW8gVyR8kmBuQ+1bVMFTavDRn0PD/ABNXy+fsqy5oP7z85YLXcOOKsC2K9K6nxX4NufBXiC4024HKMdj4wGXtVzwt4X/ta5EjrmIHgetePUgqUXKR/QeX3zSUI4bXm2IPA/h3V9Vvo1s3e1XOfMyRj3r3/SIdY0mx8ubX7u7wOdxGKreEfDaxbRGFiAGM16Xa/D8XOkOYDJcXjD5Qo4r4/FNYmdoo/a8NwfhcPSUsW7s8a8S2Nxq0bq2o3qE91kx+leKeK/h7dQTmYXkl4PSQkmvpfxN4G1/SIDJdWrJH/eC9K8z1G13M6y5z06V3Yek8O7WsdlThXLqtO9JfceHQ2LQSbHXaR6irssPyjjtXYa5o6NlgOR/EBXOyQn7uORwa+hotTR+T5xlVXK6lnrEwpoSeFGT0GK2dF8C6hqyhmUwRnu3Wuw8H+D1mZbmdNzH7q44HvXsPhvwqt0MAKoUdW4ArgxGJjRlZH1/DnCdTMoLE4n3YfmeO2fwfV4TJJJI6r17AVFdfCez28GRT9a+qh8LWbS1/s5Xu7luSqpxXL+JvhzrGkW4nvbCSCPoGK4FZ0sZXqR5lsfo8eG8mgvZ8qufLGo/D2bT8tCxkHuOawpLZ4mKsuCODkV9CXVmgZ43j3A9MV594q0KNpGeJdrAV0U6/tLcx8XnnCMKMHVwnToeazAstU9jbsD8q3bi0KnBHSoYbZV6Dmvr8nyOtnFdUqW3V9j8cq1vY3jLdBp8ckYHPPau+t/Hms2WhRWRl8yzX7kci5A+lY/hnw7Lq04RMAZxk16MPhNqE8McdtC1wAMnaOK/ofA8O5dltONKouZ+Z83icY7ttnkmo30t87M4XJ7AYqlFGAwHQ16P4v+Fup+GVEl1blEddwOMCuDksHBPHSuzMuG8tzahyW5X3Q8LjItXgyReBipUcqQQaaskbQKMbZRwfQiqd9fpZJk8nsBX8355klbJcQ6VTVdGe9RrKqvM34bwphlJU4x8pqxHfvHyvBrgP7cuJZMA7F9BUi6pcLj52/GvmVUlHRHTyRlqw0tCWDdFBHSux0/wzca5ZsA7eWpyq7e+K5qwhaNYsx4xn73pXt/wS8eWPge7upb/TIdSjktZIVjmXKhmBAf8ADPH0rz8TzqLcUdlHlbszzjwv8O9b1jxJZ6Zplu819cSeXCqcHd6Gv0T+AvgNvBHgm1t7qJU1CT5rjbg/NXwDrHiGVPEUE9pI9v8AvlO6NypA3DjjpX6U+DbhJPDunMgAQwIQB/uiuWnOompSPlOKJ8uE9nDqzqF2IuSM+1WB4ma0j2LAvpms7eZOFyT0AFULrcmQwI+terRxfs5Jo/FpYVyWwzxFrbaoy7o1QKMDbXHahJtyc1q38+3Nc1qVzgE160cU5u8jzamDK8lxu4PTpVPUPhhpnxAsTa6hbCeHOR2K1TkvDu2g16D8Pb1p7aVVI+UZbpWzrwim5HDHC1o1YulozW8A+D9P8D+H7fTNOgENvAMKv9c+tdSsgXkjPsKo27dR1qcNuwAMnoMV8/LEqUro96VKpN81R3ZpJ4gktYiixL+NY2tay+oAb0VNox8oout8bbXBB9DxWTdTY4FejRxr5eVPQ46uGd9TLvhnkVgX0xAYGtm/m2qe1chq15s3c16EMQranPDBc01ZHz9+0r4aS8Wx1CBB5yyCNsehOBUHhrw3BpekRBYwZFXLflW98WNUjmtYkcjHmrgfjWVZ3jvGyIeCMYHpXzObVrxSR/X/AISYBtynP7O3zNPR7iOObc74Un7teveGfixb6HZiI2CuVGA1eF2Mck02xFJYnjFa8i3WmtsnRox12sMV81h8SsPUUluf1HjcDTxVP2c9j0f4gfG7+3rE2senxRDGCSM14VrEMVw7SoAGPJX0rV1S9hNqxDZZjx7VzFxdMFNepXxlTFSUpnk4fLqOBpuNLQwtSsvMzhcn0FVPDvhF9dvJIYrcyuo3njoBUl/qEnmYQkHtius+E+uanHr8sFkgM7xFSAgJK4zW9Or7NXufPY3C0sVL2dSPMXtA0sW77GX5k7YrrtLuAkhMjbIc52qK56S8mk1CTcAkmcfKMVo2OZJ1jUFn6AV4FaopS5j9JwmGhRoRhFWVj2nwv8bk8NWpgh0xJI9oUNnB4HWqfj744XHizw82nGwhgT++OTXmd5DPpyhpomQYzhhjNY11qwkyFXaK9TDZnVhR9jB6HiV8jwdausS1eS8ynfBM8AZrkta037VMqRDLscBfWuhvLhiOAK5fVrx+ccMOhFKjJ86YY+K9m0eW+LIX0/UmhYbDnBHpSaXaecyHGcdqk8cecNSjE4IlPZutGms/yJECXYgAevtX9K8G1qVPD80d2fyRxLS9njZqJ2Phu6XT2DthV3ZCivZPDfx0/sW0+zw2Echx/rH+leN+G/Cuo61dSRQw7mhGWXv9Md6seINPvfC94bW9tJbeXHMcqlSP0r9FnVo1Z8spas+Iq4WVSm+ZaHdfEj4xXPjTS0sriKMFOFMa4xXkl8qbgF54p0l2S3Tmqs8jMMAV6FLlorlicVGhGirRM68gUDd3HpXKXys9w245HQV1M0xkV19qw9SjjM0flA52fNn1r8544jTrYNSe6Z9JgW1KxRg05pGBQ7j9Olatnoss7AY/CtWzt7aP/j3LsmB99QDnFdRoVqsEyTPGWwcgEda/nyaa1PoY2bNDwd8J9c8VRmWx02e5jXq0cZPatC+8B6vo8hWbTrmKTHRoyK3Pg7+0Tq/gmyGmLcpHaznbJKY8soxjit74ifHZ/FyrY2AuLyXbsUxrtzxXvSo4X2F7+8fP+3xPt7WXIeB+JoZbO6jD4V852+mPWv0N+AfjSHxP8NdFuI5AzpCsUi55DKMEfpXwLr3hG+sZjJqB23k3zCDOSgPrXtn7OPjYeALhdKu5T9iuiCWJ4RzXy+OpONN9zXG4f69RtHofdvhfxKmg6xBfNClwIzkxv0PFU/FniJda1CW4SJYFc52KMAVykGorJEGVgVYZBHemTXDOp2gnjJr5SNdOan1R8RKhOnB0WtCLUrzIAPRRXKandjBOa0tQnPNcpq0xVCScV6tPFS6HF9RizIv9WEMh5x6Grng/4jQaNfGKedY1bjLHArz7xRrHksRuxivnn4p+PJJpvsFnORg/vGRsfhXbedaFjow2V+0rJRP0x0DXotUtVmgkDo3RlORXTaLrX9k6hBdGJZfLbOxxwfY18F/si/GiXS8+H9au/wB1I+baSV849Vr7Ph1JZ4VKkEYyCK8OtKWHfJM6MVlcsPUudBrusnVr6a6KqhkbO1RgD2rnbu4AzSTXJ2npWReXXynms6WYQpLlTOOpl860udrcralejaecV5x4r1oW6Pzium1rUBGrEnt0rwr4l+LFto5MyBQOvNelRzB1JWid2Fyj3k2ea/GLxl5f2dVfJ85Tj2BrofDurfabeORHGHXOfwr5/wDE2tP4l1nKt+6Q4Uk8H3rvPBWsG3tktXlyyjA54rfGU3UpKR/RPAeLpZfifYz0Ul+J9GfCnWtM0fxdbXOrIslrEdzBunaun+OXxB0TxZrSXGjW6w2yps4XGfevDbXU/MjC9/Wp764Zo8feAHavkJ4fmqqbex/RVSjGpUjWvsMupg7t6Gsm8ugq4zSXV58uM1mzDzPmZgFr2aeljkxVRRjcxNUuNnzA4561c8A+KZNG1w3MUxSfBGQeTn/61c54u1dI1CR4G2uT0u6l+2i5MjLg8c4r1lRdSFj8rzDPIYSsmz6JtNUe4u/NJ+cnOa6rwvrsej63bXk8azLFIrFGGQ3I4rybw/riXUCOrDcOo9K6yHVmZVQ4K57CvnatPl90/YMux9LHYaNSm9Gez/GT4qad44uo59O0+OwiESoY1A6jvXkZuRySajuDJIvmBGKDgkDgVk3Mr+hFThqSoqyNIRhh4ezhsXbq7XaRXGa5qAUSfNWjeTsq53Ff8K4fxRrCKvlxnk9TXvYem5O58pm+OhQpSk2cvrupPqGqozuXK9yc9K0LCc+YhVtrDHTqKyJoYlPmry9TWlwUZTn6V+pcPZj9X/dn8v5vN4qvKqes+BfGl34N17T9VMZmMc6ynf0fBHHvXs37Q/xl8PfHRI9Xj0+PR9ThgCSLkfOQO1fLkWsyNGkbOSi8gHoPpViX7ZcWYn2loSdoYGvupSpYitTxEnaUNjyaVaUYOnbRjmuFDE5qKWYeXkVmyM0chD8EdailutqkZFfTTziMY7nmfV+Zjri5CHr1PanzNaNqweEMbfAA3denes+AGeYE8qKtSW5DAgfL/KvzDiHOHi/3MWepQoezakdfosMZmGUWRf7p4Br2Dw/8I/EeqadBdQaZcPbyf6tgpxXhmnajfQ6eojtQ8KPkzKhz/u5r2vwf+1P4h8M+H4tLWVVghxsDDJHHSvk8HRpSn+/2JxlStGH7jc88vPAegNceZZ3t5aqDzDMgYfTINdxovjKy8L2K2+m6PZidFx9oZCW+tcXH4+8LRziKS6uJE6kww5/KugtdY8Da5+70/wARG2uHAxHqMBjBb03DIFeIs0qUndR/A9SWXQqqzkc7qt3c+INSaZzukY5PGKsQq0aBeSV4z6Vp6l4futGuFaVF2SLujkiYMjj1BHaq6gt8wTn1FclTEPEPmbOqGHjQjyxWh6j8OPjtc+F4U0/V42vbADCyf8tI/wD61e26R8TPD2vW6ta6lGSRyjMFYe2K+b/C/wAL7/xFia5Vra2OOWGCfpXpWk/CPRNLUN9nM0mOWdjXp4HhnFY1+1pwsvM/P8/zTK8PeFSfv+R6HqXiTTolLNdRAepYV5j42+Kmg6XC5kvoc4+6GBNW9U8D6TdLse1G3GMZNedeKvgHouqo7RCS3k9VYkV9E+EcZTjdJM+Dw2e5fOpy1JNL0PIPiB8YX1eaSHTMojZBlPp7CvM1je4kLuSzHk9zXd+NPg3qvhPfPEPtdqOSyjkfUVxls3zEHg14VbB1cLLkqRsfrOWzwlSkp4WXMixatJbSI8bMjpghlOCPQ19HfCP9qy88Oww6d4iDXVsvyrcryyj3r54Vegre0Pwbd6zInymOMkckf0ry8Th6daFqh7VPCSx0vZ048zPv3QfjB4b8TWiy2eqQNkZwzAEe1JrHjzSLSMs9/bgY/vivljQ/hvZaLbjJeWUjJO4gVW1jwrZXKlWRwP8AfNfFSy+n7S0JaH0FPhDF8t2rHo3xD+PGhadHIsV6k8mMbYzmvmLxp8QL3xhcuF3RWx6Lnk/WtTXPh7bRszQMwPoa5C90efTWG9cp/er6bBYSjRV1qzjr5FicEuacdCK1twvbFXIppLWQSQuVZTkYqK3ORUwUswULk9MAV7fJdanmxnKEk46M7jwv4y+1SR20/wAsx4B9a9H0rS7zVQ4ijd1Vdx2gkV5d4R8F3DX0N3ONiqdyr7+9e1+GvEV/4fkL26rjGGUjg+1fMYzDrm/dn9D8K47H4jCP6zHRbM4nU91uxUoQR7VxHiHxF9hVlzhq9d8beJ38Sbf+Jfb2m0YPlJ1968f8SeFXvMuDhu1bUcOk1dnTnGIxfsJOlDU4e6vpNQlLSH5ewpq8CpbjT5rGXy5UKnoD2P0o8o44r6GEUlZH88YupWlVbr/EWNN1y60e4WSJzt7qehFek+GviFYXGPPPlSdMN0zXmtjo91q10ltaRNPM5wFUf5xXr3hP9m25vY0k1S4Me4ZMUfb2zUPLXjH7sdTow3GX+rUb1Klo9mb8Xi20khKifMZ7BuDWbf8AimyjyS6gema7nT/2d9EtYQNszY4J3mo9Q/Z50O4U8SqfXea0hwzid9DoqeNeVNWs7niHiXxpbyDbbtuPTiuHnuHvJC7nmvavFH7Oj2sbyaZOzlRnZJXkOpaLd6LdPb3UJikU4wRXR/ZtTB6TR5M+M6fEStSqadjKkyMdhTYrhkPPSrMkJcGqX2SSd9qcDoT6VdKjVdRKitTn5lb3jWs5zP8Ad5xxXYQeG9T/AOEZOpiKX7KZvKXAO3dj+eK5DTbJ7TgHvkmvRPDfxC1bw7pghi8uW235Eci7l3Y64r9fy7IMzq0IyqRszyqlanB6HA3SzRM25WHqCOlWdHj024tL6TUJpEnWP/Ro414ds9/QVpeINa/ta9e42BWk5YbQBmsRog0m5Fx/s1rnHD2ZUsO50VcKFZP4lYdEMYxxj0qeOcjg81AMjincLkkjFfjtSM4ytUVmeimraHY+GfGs3h1HSOCGWNxgq6gg1T1K+sNSkEnkC1PcQjg/hXJnWoIW2g78elKNeTcMxtil7ZxXKR7GMnzFG1tYWcAFs4Gcjv3FWZNHeM5QlvTiixh2xpI3IY8YI7V7P8EvhzD8RNaaze8trIRwvO8t24RAFGcV49eoqUeZno048zscH4J8VX+g3C21yGu9NbiS2kJIA9V9DX0b8M/h/DqsiahMhksc7od38foTXlq2dn4W8d2FvBYW2qz+f5QjnyYn3diPbNfXmg6cLLTIIvLSMqgBVFwBxXqZBgo5hi1Nr3FqfN8T5lLLMC1B+/LReQ6209MhcBEAxjGPwroLPR7X7Pk27ytjjH0rPVlh525+tXI/FU9lGQkanjAr9zjaMVGGiR/Nk26knOpq2cZrFnLbzEtE0QJyARisKaQZIau18TeJH1pYw8KR7FwNorg9Q+VmrvhPTU4HR97QzNWs4riNlZQynjB5FfMvxZ8CJoOoHULJNtvI3zoBwpr6WmlLAivPviFYrqtlJasP9aNo+vavnM5wtPE0Xdan3PDmJrYPERcX7r0Z4/4B8KPrki3UkZNupwCRwa908M+HIPtCxuViVRk9KPDPh1NF8KRxRKoFuihjxy3c1c0qaGG4Es+ZP9kccV/PuY1JKpyXP9COEcmpYbAqs178j0rRPAul32lyTlZ7mXBCqinGcV5N4r0TUNNkPnWMlvGc7WZCMivcfBvxwsPDNo0DaWWTGFKnmsX4rfGLTvGeixWlvpv2eRT99sVthsHQlQdWdT3uxtWrY2jjPZKg3B9ex83agFkUqV2kd65jVLOOSFlKgg122qQIZCVrmriyeeR1QZwDn6VlTl0R2YmlCUeWSPNrzT2sbjaASjHjHau28A+FTdTfaZ4+/wAisP6V0fg3wZceIL2TyogzRKX5A4rudF0J7WYpt5Xk7sCuqtiHCjpufG5dwrTrZj7WT9xa2L/hvwul1MkZKxr1LHsK9Ps/hRYXWhyT25kubor8ixpxn0rg9LmjhuA8pO3ptXivZfBPxttPDNmLd9O3QqMKVIz9a8agvb1VGcuVH6nmEa2Fof7LG7XRHhHibwTqGl/Nc2T2w6AspAriLqzj+dWGG+lfTXxX+M1l4u0NLGDTRA2f9aeoFfP2pQoxOO9eriYUsPNRoz5keVg6+IxdFyxNLkfY8x8SaPHdIygZI6HHeuEa3eOYxEfPnAAr2ddONxeMqqDtGcGuVn0JJfGdiQoCM3zDtkdK7sHJyaR+R8ZYelCDrxWsT1f4L/DuHSdNjvJ4w13MNxYjp7Cvb9O03zGCKABWH4YtVt7GFVAGFrp7R9jZLYHoK/Q8LGNKCUT+CM/zKrjsXOU3oa0/hxYtPEqP5khwdqjisK60+WHBeFkHuK6/TPFkenRhRbB+MDNQeIvF6atYrb/ZUjK/xjrXrU0uW8mfPe7umcDdWytkEV5X8Ufh/b+ILGSRE23KDKOB19q9fudp+tc5qsYlynrxWNSMaseSR7WWYyrha0atN2aPiTUreSxvHtXXa6naasW8O2MADArtPi1oKWHiQzqABL1A9axrCx+1bUTGcd+K+k4Sy2lSqyr1VdrY/o2ljliMNTrd0P8AD3h+XW7wRKVjA6s3AFd7q3wpu7SzgFiGvmblkRSccda5rQZEs7jfM5RM8hOtez+Gfj5b+HLVoYNIE7bFRZHIzwO9frNavVi17LY4a9WXK5RWp4nrngPVdJjEt5YTWqMMqzqQDXMmykjbPcV7f8Tvjde+P9PgspbCCzjhGAU+8a8qm2n8RXdRxE5w/exsRhsRVcf3isYmoSiVUbyxGyrg7eh9652/vGnYohwg44711V9t8tsYrlLiELIfc5r8R45ymnTSxtFW7n02CqX91lSOFvM6e9XI7ctWpZ2v2iJS/pkDFP8ALWFWC8fyr8WcWexojQ0fQ2kwu3cw74rrNMS40VC0b7D044r234G+Gfh7qGhzy63cSSX7nbFHGcMK1Pit4L8F6RaedYGZwq8L0Le9etLLU6HtZSR4v9o8tf2KTPDfCNwL/wCI2gtLJvJul3Bq+4YTujH0r8/rHWhY+L7G/s4CsNnOJMnnIB7/AIV95aLqSalpdreRHMc0auD9RXqZBOGHconyfFtOeIhCfY0Wi3rwM1m3kezIPGK9H+G+qeH9Jmnudcg+2J5bKsPo2ODXC+KL6LUtSmnghWCJjkRjoOK+2hjr1vZW+fQ/N5Zb+4VbmXp1OT1Biv0rmtQb5c102qOGVVC7SowSO9czqGFU7q9JYpWOD6rqc7POVY4PtXFeKr5Y7i3BI/1gz+ddDrFwYSzZwB0ryjxzrgt187dxEd1ePmGKvTdj7fIcJH20XJbNHqcc7y2rgE7cZIHSlsLaSX7i7jWDoOsNqGkxTwtlZEBIX6dK9N+C/iTQdB8VWs+u232qzU5eI9DX865hUlGpKR/o1ldWH9nwnTV/dX5HKXatb8MCp9Olc3qV9JIxQ4CrxXpXxd17R9a8UXl1o1uLWyZyUjHQCvKdRuFkmJC4FcuFrupFSasdUZe1gptWKV2zbTzXN3E0n2gojYZjjjitq8uAVI6CuV1KQpufdgdjXs05dj5rHSUNWegfC6TUJtantLaQJIsbE5YAYFdXCLm6umxln6Haa8T8L+KYdH1EvLKULDAOa9X8I6vHeTBA/wAsnRgelc2JdTRdDoyPEUZSkk9To7OGR/uqcjjFT3Qlt/kYbD6EV1XhDxJpPhLULVb2EXipKHcMvXFJ8ZPG+leLPEI1DTLKOxgKAeSoHUd/rXhfWJwqqnyn1c8Q5VFBR0fU871O8kkABIIHHSsS8YleDirF1dbpCScDtWXeXQ2kA4xXs05dzlxCSizIluXjuCA2D0z0rIW/EPijTVYjLSAVJqExXfJngd+1cVNqm/xNpzK2RE4Jx9a9zCzcZJn4Vxk4zoTguqPs3QrjzIY1U84GK6K33vJsAy3TFebeE9aWa3hbd26ivR/CfiBNI1y0vZYluEjkVyknRsHoa+7o4q8OZH8AY/BOOJlCWmpdvLeaxUebG0ZIyNwrPkuCy84r0P4ufFLTPG8kMlrpsNkY02lVAyeK8mkvAD6Ct8FjJ16fNUjyvsc2YZfSwlbkoz513LFzNwea5nWbnarYNX7u/HY1yHiLVPLjfnoK7ZVktTbBYdymkeQfGKTddWwJ+bNcjYszMip95jgYqT4gas1/rCKGysZqlp7+bIq5xn0r6XIczjGUoXP3zBYaVLA04s3rOwuLjUktIo2luGfYEQZy3pVvxRpup+Fbxba7t5LOcAZWVNpH4EVc+H3iC58E+MdL1pYll+yzrKvmDIOCK7j9pb42r8Z/FS6iNPgsgsaoFiHXA71+gf2pV+sUqcIc0Xu+x6VPD05UpTlLVbI8f+0PM252JJ70jqCvWo/OVAKQ3G4fKK+iliopHDyu+hVkAyy5qitrFDqVubuBprdvmKKdpcegNPuZjuI/CkutSuLr7P5jbvJQIgwPujoK/MuMMfCWEdK+rPXwsZKSZes7N2yAgVegXOcCtweDJZoUZJFIcenSs3S9WihYO45r6o+D+s/C+48IRHWYi2qKfnUtwfwr8dwdBYifI3Y6sZiHh4c6VzxPw7pviz4e30V2uim52/cdQJU+vFXdU1bVfH2tRPr07adbfdYBcbV9AK9UtfBc6wloWMbYBCCTaMH+VSv8P/s8b3jW7y+WAWdhvA9vSvmnnWHvex6/9lVu55lc+G9ImuIrTS7aRbFOXmlGGlr3n4R68lxpa6MSFltx+6Vjjcv90V5pMotyIzEyoxKrwOOelSRiSzuIrmGRo50OVZTjHHFck82quqqtP3UayymlOg6NXW59B7wcjOD0xVW5xtzxmvP9F+Jn7gRamhMqnBuF6keprt1LXEatD86uMhh0PFff5bm31yNlufkmaZNPLp+8vd7mTqDKuea5XUptzFegro9UPk5DcHvXnHjDxVDpkL7fmbB4FfRwdSW7PnlGF7RWpznjDVEhRk3DvXgHjbWhqFx9mjO5AcsfU1a8Z/Ei51K4mhi/dKTgt39K423bzWyeprwswx8ZL2VM/QcnyudD99W08j034V+Lzpc0dhcNiLPybv5V61fGNwk8AwOp2mvmmMmPaynaw6Y4rv8Awd8TH0maOHUV8624BbqRXw2Iwiq7Lc/oHhrihYOCw2Iei2f6HpNzcM0XU1jXcxZe/wCVdTZ+KvDuqW5NtcRYYcg4BH4Vn6pqmjW4LG4ix+FcEctqRP0n/WHC1I3izjpmMjfNwK5nxRrESW4hXb8vTFafin4h6VBG8dqolfGBxxXll1qj6hMXfpngV2U8K4M+CzrPqUlywepI9wZZvMb5sH7vavRPh541+zXccE5WMA/Keg+lebooOMU9N0bBlOCOmO1dNSgpx5WfA4LNq2DxSxMGfVtxqyX8McoYE4BrOurwyDIyQBzgdK8c8J/EltLkSK/DSRDjcO1el2HxC0e7gdYrlFVxyrDFfP18LKMr2P3nLuKMHiqS97XsOurg9s1msftEhUnauOam1DxTpEKk/aEIA9RXC+IviJaKjR2XzuRjcOAKKdCcmGPz7DU6bbkTeNtdht7P7NCQD3xXncd88bbhj196hub6W/mLyNnPahVHHFfQ0aPLHU/Bs2zL69VbWx7R8L/iGkkaWdxJtmXgZ7/SvbbHxCXjQ7tw7CviyOVraQSxOVdTkFeor1r4X/Ee5vrtdOuBvkI4b1x61206jpux+N59kKrXxNFep9Ef20ZF3ENjpntVSbWBjG7iq2l2d5qFpP5at5Ma7mwuR/KsbUJjBkEEfUV3wxL2PzN4GO7RdutUMmdrcjk155498WRWFiy7v3rA4rP8aePF0UGGNSZWryPUtWuNYuGknYtnoKmeIk9D7XJshdRxrTVo/mVbu/a4naRxkk5Bq7p998wYNgj9Ky5E4NVGla3kyDg1OGxE8LU50z9UdKMoKCO9ju55IwyksOwp01vctaid4G8tjtD9s46Vz2k+JjGBG8RYf3lFdBH4iiaIKwbb1CkHFfe4XPNLqR4lSFSi+W10Z0m/PINRtmNcl8ewrQl1e267CfbFY91ci5m3Iu0eldtfiPlhuOjGVSVuWxGAZHH90VY2qzAlcimR4qVTX5/jsdUx0+abPbhTUFodRpdl4cvtL2z3ElperyGIyregrPt7W6gm2WcuVzgFWwKxWmWP7xAoW+Tp5wHsGrkjUUehm6Tb3uU7jxRrmqTM8+o3UzP1zKf8a2/DvxE8VeF7hXsNYvLYA52GQlD26Hg1z9ou2TEY57V2Gg+HW8RyC3hIEoXOOuTjpXg1KdKMbOKsexCpNvRns/w++MWn/EJU0rxLFHpmtM/7jUIV2wynptkHY9Oa6nVdBl03UHguI3SWM4K55OfSvDvDng+z0vXrca7cyWWnF8SyRrukQeoFfUXgy907xtYJc2sVy1vauIIZ7s5kmjUDDN/n0rxoYCeKxMKWFV+b7kdVfHU8JhpV8S7KJm+H/CKvbtLc2zBm4VWORj1rsrK6udPhRIzhUGFGMDHtW1DarwvQelalro8FxAw8hm449a/oPJ8hwmW0VGUeaXVn8y55xJjc2rtwlywWyPONalm1DcDgVweteCYr8PvJyRXqWuae9rMw8po1zxuXFc7cAd+tfWRweHlHSJ8pDH4mM7uWp83+MvgWkzST2b7JuTz0NeOX+lXWh3z2t1GY5FOMEcV9sajbh1OBmvI/ip4BOu2LT20O67h5G0csPSvi82yClyurh1Z9j9RyHiaq5xo4p3i+vY8QsbeW+mjggQySudqKozn2r37wD+zibiCK71zJZwCLdTwPrWn+zj8HTa2417VbfFyxKwxSL90etfSNrYJuUN8o9q4cnySFRe2xS06I14j4nnh5fVsE9er/AMjyiL4N6LZwbIbFFGOcDmsu++EejzcNbjFe+y6PbSWbMFcvjjFcjqFi0LkGNk/3hivuKeX4GWns0fnT4gzWmv4z+88I1j4B6LdKQsWw/wCzXkfjj4J3nhxXubHM8C8smPmAr68mjAJrC1axW8hdWUEY9K4sZw/g60PdjZnrZdxZj6NROpPmXZnw3DlCVYYb0q7Z2MuoXEcEEZklkO1VUcmux+Lfg9fDutG5gXbbzHO0djXoHwF8BiS3Gs3MWXbiPcOi+or8oq4GdLEOgz9kqZ1Rp4D69fS349ip4R/Z/FxbrPqbFpWGfLXoPau1j+A+lLHgRkfSvXdN00OyRjCjpk9BXXx+FLP+zZJjc7pAONo4PtXuU8DhoRtONz8UxPFmZV6zlSnyryPmq4+AuktkYYfjXPap+z7Y7GMRIPavoi5tdpOVI/Csue3U5yK6Xl2GtpGxnT4qzNv3qrZ8b+LvhzfeFJd5Bkt8/eA6Vy+Mdq+wPFmgw6paSxOm7I9K+cta+HOrRau1vZ2ck0TNhWUZA+tfP4rBexleCuj9VyPiBY+nyYh2kvxMrwn4PvfGOpLa2keE/wCWkpHCj/GvofwR8DbDQJEnXc0+OZG6/StP4U+B4vDejww7B5x5kfHJavWbGxDFFHA6V3YTAQa5qqPieJOKqvtHh8LK0V+JF4blm8O2k9tEA8EwxIhHBrD8QaDb6k24QrHxggV6J/wjqmxMqfM3YCsG80+SHlkK17FPB4fVqCPzb+0sTonJ2Pn/AMa/BiLWmaVHKygcV4b4l8JXvhW8aG5Q7f4Xxwa+3Lm3DKcivOviF4Lg8RadLHsHmYO1sc5rixWW05R5qa1P0DIuKK9CcaVd3h+R8kSN07ntXp3w7+CEviJEvtU3RQtgpCOpqDwb8K9RufE269tWSzt2ySw4Y54r6f8ADumrb28cYQAKMYxXkYXBe0leotD7TiDiNYGio4WV5S/A47TPgjokMagWq4A9K1V+DOg7ebRT+FelabYrcSKrHavc1v33htIoY2tt0pIyQBmvo4YehHTlPxipn2YVZN+1Z4fdfBnQWU/6Go/CuF8WfAW2aF5NMJimUZCHofavoy+02W2/1kTJn+8MVkXEAPtWtTA0JK3KdOE4jzCjNS9o2fEOp6Tc6LeSW11E0UinGGGKyr6+8gYj+/8Ayr6Y+MPgSPWtNkvIEC3UQzlR1r5entHFwySHa4OCK+MxuFeFnZbH7/kOcQzfDqb0kt0Z0skk75Ziabg1otp4xlGz+FOj0/H3uOe44rzbdT6hWNLRrMSSDuuecfyr2PwT4gtfAfiXQ9b0IMLq1CySi6RWUSAnoPTGKi+G3wb1fxdCf7Ms/NEY3EkgVveJPhD4g8MYW6sHRcE7lwQB+daywE6tPncfdOb69Tp1OS+pxvj/AMRTeNPEzTsqpcXk+WWNQq7iewFfX/gbQINC8M2FrDGEWOJQV98da+OfD9iT8QNGhmIVTcqME9Oa+5bJFW3VeOBjNe/wxhadCpKS6HxPGmKnUw8Ka2YIwjbpVu38SXGn5EaJ0xyKpMnXAqpcsVXpxX6nGaZ+JOm1sSeJfEkmsWkccsMaFehUVwGoYVvlroL9jgnpXMX7da7Kc1HRGHs23qUJCGzzWn4b0VdSlfO3gZwa56a4+brXWfD0Lc3VxmUIVTIHrVSrRWrOj2U2rRO00vTo7a12rhdpwFFXlCxnON1FrAfJJA4HU07yzjpXF7VPYxlRl13Llv4mksVKrDGRjjIrI8Sa2dW2kwpEVGMqOtE6kZ4rIusjOa3g43ujGcZWszBvQNzHpWTM3UVsXy4U1zV5NsYjNdbqaE06bueZ/GLQ01TTkAHzeYuPzr1TwJokenaHaW6KEWOMD07V5n8QtSSGG2Vz1mX+des+H3M9tEIxk7Og+lfnuOlT+tuXWx9NjqtaOVU6XRtm3Cqq3JwB6V1uh+JbLS0VJLcygd2/wrjY2LNjv0xU0hMfGMVhGolK58PHmg7o6PxZ4ksNWs0igsRBIp5euDvCO1WZpiScms68fiuidXn1OmmnKV2ZN4vmEj2pfDei/brpo1UFm5qjqNxsY81c8DTm68RQWnnLGZHC7t3A/GuZ1Ip+8e/GFT2T5Dq7DTPs8hjwABz6Vr27BXGeBVG8X7Lqs9uJFk8t9oZTkGrNtG0kojUEsTgKKhVoyd0fMYiE+a09zstJ8RWlnCqvHux61F4k8RWmp2KpHAquO+MVzl9ZT6e2yeNomxnDDmqbScYzxXbRrpRsjKTnH3JKxXulAX3rAu4w8m3IH1rauZPlrnNSm2secVLmduFi2y14a0cX175I2jdzknA6V0EFmILho+AB+Vcn4TuUbxJbWzzqiu4UvngAkc122rxW9v4guLWzuVuoVfas3QGuWeIp6ROvF0atufoWrRlRhu5Arq9P8YLYx7FtlOBgFq5Kzt2mm8tR5jZwNvOan1a1n03C3ETwE/wupBq4VoxktdTxowqxvKKLnivxc+tRxxGGOIIMZUcmuPmlFJdXW49aoyzjHWu91HLVnTCDlqynrCrNDIpAwR0r5K+JWjDS/Es+wbVY7hX1TqFztVj7V8//ABit4JdStpEkDO4+dcdK8HM4qdK5+ocHVJ0MXy9JHB2NvuiGFzwOcVJPaybGO3oPStfQbOJf3bHOenPFfQXgP9nPUvHXhy21GGCzt7WT5Vkd+W+or57D4d4h8kT9nxGIjh1zz2Mz4GeKtbjvI7W0mFtuXJLLjjNdb8XvGV9qUNxFPqSypGmHKMAxOOnFdNqHw4ubPfhbWVtuTK0ZjduemVxWGPgcl5dE3twIFb5isWS34bq8afEFCVPkhV906FktX2vPOn7x4L4P8H315rVpfKHe6M6mCDqz89fpX2pBHJBaW4fBLRqcr0PFeeL4P0/wvGU05PKlkXaJXbdI/OPwro/D/iJUtYbC6cbo+FYnjr0oyziOlDFxhBWgzjzzh6picE5PWcT1z4U3nhu11uUeJLT7TayRFU9Fb1rlfGFrbWupTJAV8rcSoHOF7Cqccg4ZT78VU1GQysTX6fTxClV9tGeltuh+PyoqnQdCUNb79Tm9Tb5iB0rmtQ+VSa6a+Kc81x+u3ixqcV6MswhFbnnRy+U3ojmdUvhbsTWbofxXsvCOtA3hYwyfKdgJI/CsPxRqz7tkQ3OeBiuY+wmOQNIA8zfMdw/QV8xmefqhC0XqfY5Tw5LFVE5r3T7P0XUkvtPhuImJilUMp6cEV3/w51LQNO1Zn8QWRvbJo2XCnlW7NXzJ8GfiNG0EeiX0gSSPiBmPUf3a9oSRWUMpyvtW+AzaGOocsnZnm5lk08sxd1G8d0WfEjWpvrg2fFvuPlg9dua5W7brWvd5bJ6Cse66HJr6ajiY04JXPmK2GdWbko2MTUCOa4PxFqC2hY54rsdYvI7VGyR0rxD4ieJlhV1DfvDwAtcuIzaFNbnbhMonWkkkcL8S/EUmoXkFvb8lG3H0GDXvfgXWDc6HZTbwS0Y+ZT7Yr5hmzLMZHO4sefb2ru/hn42/secadcSEQMcxs3RT3r80qZnKpiXU6H6PmPDiqZUqUV70dT6v8Capp1n4isZ9VjaaxWRTKi9SM11/xm1bwxf64t14agMFpIg+Q8HPfivFNN1qGSJX8znpVqfVlmIO/tXoc0a9WFVStbp0Px3knhKNTDTpp83XqvQvT3Qyay7y6HPPFVLnUlXuDWDqWtKinLYr1niVFHn4fCSk9EVfEGqLDn5q4Wz+JEOi62pdjgHHFUvGnihVRwjjPQV5dNK00jSMclua8HF41/ZZ+tZHkUcRD96tD7D8P+IV1JEuA4YSAMGBr0r4e+JLbQfFFhqF5AtzBE4LI4yPrXxv8L/iGdJZNOvHxBn9257e1e/ad4jikhRg2R65qKGM54OEz5PO8gnl+J9pTV47o+ivjh4y0rxpqNveaVYiCPbtMigDfXksk23k9qybfxUyx7FlIGMf59KqXOrL035FejgVHCUvZxd0fLZnKeYV/byjZ+SNC8u+vNcf4i1RbdWJbtUmoa0kasS4GK8p8e+NFgVgpySCABXXWxijE7cqyupXqqKRPZ/EaOz8VpCG74z2r17R9c+1sHZvvc5r43lnkkuDMSRJncCO1es/D34lA+Xa3rhJhwGbgGvmnjKntOZ7H6dmnDEJYVSpr3lufWPg/wASf2Fq1re+UsxhkWTa/IOD0rZ+MPxOf4gawNRkgjtAECCOPoAK8asfEwkUFXBGO1Q6v4kUJy2DXpUp0q1WFWW62PzJ0MRh4Tw0V7st/ka82pDd1qrLqQ9a46bxInd6z7rxMixlt4H419H9ZikFPLJvob+ua0sCsxbtXgXi7Uhq+tMQ3yqcZPSt3xd40MqtFE2SRjNcCZCzFm69a8LGYpT92J+pcO5Q8P8Avpo6JtLuLe180SKeAflYV0/hP4u6/odmthaalcQw5wIVY4rz2G+kh+VWOPTtV6x16fT7hZ7cRpKvRtoJFcNKt7KXNB2Z9vVo+1XLNXR6Tr37XvinUWdLG3tbOAkYDJvbj3NS+Hv2ufFVjdIb20tb2IcEBNp6eteGQ26nAxz6VoW2kyThXgBxnAxXybyzCxjy8h9D9drt35j7I8I/E/SfiplrOUWeqBcGznxuHTlT3rTvLGbTbhonYF1BHGPz/WvlT4f+HdavPF1jaackiapvBhwwX5hz19OK+tdTiW7tQZ761udYtUVL4Wp3IJCM5H4fyNfM4zDQwk17N6M9rD1nXi1JEdn42msowszBwox8owaTUvidplnCsl3crbK3AMhAzXMa5eW2l6fPPO/liOPLFl44r5O8a+MLrxRqEssrHyFbES5OFXtX0GV47FN8ilofMZnlGEq++42kfWmpfFDRJIy0eoROP9ls1w+s+Oor/cLYmTPQ9BXh/hyHNrGR0xXd6PGCir3FfQzxFVrVnh0cpoQep21r4O1m/wBAbWFt1uYAcH7PklR6kVztwW3bdjcf3h0r2T4K+LodIlOn3LqsUx+UN0z6VqfGb4Z2zW/9u6Unkrj9/DGOM/3hXxeKxEo4jlqn3OGw8I0V7LofPTM0EqyRF0mB45wQfavSvCfxwu9JjW31cNNGowJV6j6ivP5oSGLEc9Pm4rgPG3iFvO+wW7Bf+ejL/KvTwtSpGS9mzzcZhqOIjasj68034yaBrkZ+z6jExHBUnBHtTNQ8cWG35buM/RhXyT4YxbcDgMMV11nucgk9K+k+uV0rXPkv7Cw7d0e93/hvW/EegvqGmRx3ORmOLfhn+nFfMniq01Wz1qePVraW1uVJBilUgrX1v8B/FcMmm/2ZO4EkfKZ7iu3+Knwz0f4m6EYZraOPUIlzb3SjDA/3T7V8fis4r067p1fhPscFkmGp0lOl8R+fLRAjAOMjpUUkZTBHBHcVv+IfDtx4b1i60+8QpLC5Q8YxWRqEkdpbbyNzYwoHc16lKSlFOJlOPK7SNvQfiTeaLst7jNxHwBj7wr0XT/GSXyqUJDEfdbg15NoujjyxO3zzPyW9Paus0uzMbKcYr0oOUFoz5XHZJhMbLmasz0q30PxHrKq1npV1Mj/dYJwawviZ4K8V+CNDj1HU9Mnjt5h8siDcqezEdK+kvgT4pi1Dw/DZyH9/bjbtPUj1r128+y6tZvZXttFcWcieW8cigggjpXyuNz3EYer7Pl0PUwHBeC5faOWp+TFzcTX0xeVtxPQelRNHhemD+le8/tNfAeP4Z+Ihf6UhXQ7wlo16+U3Ur9K8REA2nPI9a9rDYiOLgqkT0p4X6m/ZJWsZ+3y/m6Y7+lei/DnXtZluYbZjm0Y7RJKTkfQVy+haOuoXHnSjMKnCr2PvXoujWot5kdRjae3au63VHDWw9LEx5Kquj26T4UeK47aKe3hjvInXcDG2DULfCnx3NGXGjSKmCQzMoBH517Z8F/GVvrvh2C3dlNxAoVlPXp1r1T+0hKojcDZjAx2r47E55jMLUdO2w6fBGWYhKom0fmH458YX2j6lc6bNbTW91E211mUrg/SvObu6m1CYyTOWJ/T2r7O/bE+G9lq93FqkKLFfrDuZ1ABdVPOfevjFoTDIVODg4r6DL8wePpc73F/YdDKZ8tNfMrtHjpW34N8H3fi/XLWwtWWASyBTcPnanNQaTpbatfJAvC9W9hXrnhe1XR7i2aBAgiIIxXpSvyux0JJuz2Pozwj+y/a6boiQXGt3d5dY+WYgBV46Vzfjb9mXxPBv/s68gulHTflW+le7/DTxpb69oNvKrL56rh1zkg4rsftgvNySYLY4bH6V+eVM1x2FrNXPZlw5lmMgpuFn5H5j+OtJ17wLdGHVIWj5wHXlc9xn1rhbnxBc3HAkIH1r7M+Pem2N14qvtMvY1e1u4Vfn+FsEZHp0r4u1vS20PWLmyYhvKfAYdx619pluaVMZD39zwMTkeHwcrwV0VjIZGyxyabJMsSZPbpTC3FVpFMrc89gK9omMUtI6Ijm1F2bC/KPami6lB4kOKf8AYZF6rtqaKyDKPlz9KWppoj//2Q==\" data-image-state=\"image-loaded\" width=\"320\" height=\"240\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 31.5px; text-align: left; transform-origin: 384px 31.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 380.192px 7.91667px; transform-origin: 380.192px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eYou are provided a cell array with one cell per piece. Each cell contains an N-by-M matrix with zeros and one unique value (the piece number) representing the positions of the 3 to 5 elements that define each piece. In our case, the pieces are provided as\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 224.767px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-end-end-radius: 4px; border-end-start-radius: 4px; border-start-end-radius: 4px; border-start-start-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; margin-block-end: 10px; margin-block-start: 10px; margin-bottom: 10px; margin-inline-end: 3px; margin-inline-start: 3px; margin-left: 3px; margin-right: 3px; margin-top: 10px; perspective-origin: 404px 112.383px; transform-origin: 404px 112.383px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 53.9px 7.91667px; tab-size: 4; transform-origin: 53.9px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003epieces={ [1 1;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 69.3px 7.91667px; tab-size: 4; transform-origin: 69.3px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 57.75px 7.91667px; transform-origin: 57.75px 7.91667px; \"\u003e          1 0],\u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(14, 0, 255); border-block-start-color: rgb(14, 0, 255); border-bottom-color: rgb(14, 0, 255); border-inline-end-color: rgb(14, 0, 255); border-inline-start-color: rgb(14, 0, 255); border-left-color: rgb(14, 0, 255); border-right-color: rgb(14, 0, 255); border-top-color: rgb(14, 0, 255); caret-color: rgb(14, 0, 255); color: rgb(14, 0, 255); column-rule-color: rgb(14, 0, 255); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(14, 0, 255); perspective-origin: 11.55px 7.91667px; text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); transform-origin: 11.55px 7.91667px; \"\u003e...\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 53.9px 7.91667px; tab-size: 4; transform-origin: 53.9px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e         [0 2;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 53.9px 7.91667px; tab-size: 4; transform-origin: 53.9px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e          0 2;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 69.3px 7.91667px; tab-size: 4; transform-origin: 69.3px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 57.75px 7.91667px; transform-origin: 57.75px 7.91667px; \"\u003e          2 2],\u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(14, 0, 255); border-block-start-color: rgb(14, 0, 255); border-bottom-color: rgb(14, 0, 255); border-inline-end-color: rgb(14, 0, 255); border-inline-start-color: rgb(14, 0, 255); border-left-color: rgb(14, 0, 255); border-right-color: rgb(14, 0, 255); border-top-color: rgb(14, 0, 255); caret-color: rgb(14, 0, 255); color: rgb(14, 0, 255); column-rule-color: rgb(14, 0, 255); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(14, 0, 255); perspective-origin: 11.55px 7.91667px; text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); transform-origin: 11.55px 7.91667px; \"\u003e...\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 61.6px 7.91667px; tab-size: 4; transform-origin: 61.6px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e         [3 3 3;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 77px 7.91667px; tab-size: 4; transform-origin: 77px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 65.45px 7.91667px; transform-origin: 65.45px 7.91667px; \"\u003e          0 3 0],\u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(14, 0, 255); border-block-start-color: rgb(14, 0, 255); border-bottom-color: rgb(14, 0, 255); border-inline-end-color: rgb(14, 0, 255); border-inline-start-color: rgb(14, 0, 255); border-left-color: rgb(14, 0, 255); border-right-color: rgb(14, 0, 255); border-top-color: rgb(14, 0, 255); caret-color: rgb(14, 0, 255); color: rgb(14, 0, 255); column-rule-color: rgb(14, 0, 255); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(14, 0, 255); perspective-origin: 11.55px 7.91667px; text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); transform-origin: 11.55px 7.91667px; \"\u003e...\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 61.6px 7.91667px; tab-size: 4; transform-origin: 61.6px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e         [4 4 0;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 77px 7.91667px; tab-size: 4; transform-origin: 77px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; perspective-origin: 65.45px 7.91667px; transform-origin: 65.45px 7.91667px; \"\u003e          0 4 4],\u003c/span\u003e\u003cspan style=\"border-block-end-color: rgb(14, 0, 255); border-block-start-color: rgb(14, 0, 255); border-bottom-color: rgb(14, 0, 255); border-inline-end-color: rgb(14, 0, 255); border-inline-start-color: rgb(14, 0, 255); border-left-color: rgb(14, 0, 255); border-right-color: rgb(14, 0, 255); border-top-color: rgb(14, 0, 255); caret-color: rgb(14, 0, 255); color: rgb(14, 0, 255); column-rule-color: rgb(14, 0, 255); margin-inline-end: 0px; margin-right: 0px; outline-color: rgb(14, 0, 255); perspective-origin: 11.55px 7.91667px; text-decoration-color: rgb(14, 0, 255); text-emphasis-color: rgb(14, 0, 255); transform-origin: 11.55px 7.91667px; \"\u003e...\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 61.6px 7.91667px; tab-size: 4; transform-origin: 61.6px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e         [5 5 5;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 73.15px 7.91667px; tab-size: 4; transform-origin: 73.15px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e          5 5 0] };\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 10px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 10px; perspective-origin: 384px 31.5px; text-align: left; transform-origin: 384px 31.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 361.617px 7.91667px; transform-origin: 361.617px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003ePlease note that the orientation of each piece in your solutions might be different from the one provided as input. For example, the red piece (number 4) was flipped from left to right before being placed on the board. The pieces can be rotated in steps of 90 degrees, flipped vertically or horizontally.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 84px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 42px; text-align: left; transform-origin: 384px 42px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 363.042px 7.91667px; transform-origin: 363.042px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eYour solution set needs to be provided as a 3-D array with 4 rows, 5 columns and N layers, where N is the number of possible arrangements of the given pieces. The order of your solution set along the 3rd dimension does not matter, as long as it provides \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 58.7px 7.91667px; transform-origin: 58.7px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eall valid solutions\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 1.94167px 7.91667px; transform-origin: 1.94167px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 62.5917px 7.91667px; transform-origin: 62.5917px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003ewithout repetitions\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 15.5583px 7.91667px; transform-origin: 15.5583px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e and \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 94.875px 7.91667px; transform-origin: 94.875px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003ewithout symmetric solutions\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 93.0417px 7.91667px; transform-origin: 93.0417px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e (180° rotations or flippings of other solutions).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 178.167px 7.91667px; transform-origin: 178.167px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eFor example, the solution above would be represented as\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgb(247, 247, 247); block-size: 81.7333px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-end-end-radius: 4px; border-end-start-radius: 4px; border-start-end-radius: 4px; border-start-start-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; margin-block-end: 10px; margin-block-start: 10px; margin-bottom: 10px; margin-inline-end: 3px; margin-inline-start: 3px; margin-left: 3px; margin-right: 3px; margin-top: 10px; perspective-origin: 404px 40.8667px; transform-origin: 404px 40.8667px; margin-left: 3px; margin-top: 10px; margin-bottom: 10px; margin-right: 3px; \"\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 42.35px 7.91667px; tab-size: 4; transform-origin: 42.35px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e[5 5 5 2 2;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 42.35px 7.91667px; tab-size: 4; transform-origin: 42.35px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e 5 5 4 4 2;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 42.35px 7.91667px; tab-size: 4; transform-origin: 42.35px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e 1 4 4 3 2;\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"background-color: rgba(0, 0, 0, 0); block-size: 20.4333px; border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; border-end-end-radius: 0px; border-end-start-radius: 0px; border-inline-end-color: rgb(233, 233, 233); border-inline-end-style: solid; border-inline-end-width: 0.833333px; border-inline-start-color: rgb(233, 233, 233); border-inline-start-style: solid; border-inline-start-width: 0.833333px; border-left-color: rgb(233, 233, 233); border-left-style: solid; border-left-width: 0.833333px; border-right-color: rgb(233, 233, 233); border-right-style: solid; border-right-width: 0.833333px; border-start-end-radius: 0px; border-start-start-radius: 0px; border-top-left-radius: 0px; border-top-right-radius: 0px; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-block-size: 18px; min-height: 18px; padding-inline-start: 4px; padding-left: 4px; perspective-origin: 404px 10.2167px; transform-origin: 404px 10.2167px; white-space: nowrap; \"\u003e\u003cspan style=\"block-size: auto; border-inline-end-color: rgb(0, 0, 0); border-inline-end-style: none; border-inline-end-width: 0px; border-inline-start-color: rgb(0, 0, 0); border-inline-start-style: none; border-inline-start-width: 0px; border-left-color: rgb(0, 0, 0); border-left-style: none; border-left-width: 0px; border-right-color: rgb(0, 0, 0); border-right-style: none; border-right-width: 0px; display: inline; margin-inline-end: 45px; margin-right: 45px; min-block-size: 0px; min-height: 0px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 42.35px 7.91667px; tab-size: 4; transform-origin: 42.35px 7.91667px; unicode-bidi: normal; white-space: pre; margin-right: 45px; \"\u003e\u003cspan style=\"margin-inline-end: 0px; margin-right: 0px; \"\u003e 1 1 3 3 3]\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 10px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 10px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 10px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 229.9px 7.91667px; transform-origin: 229.9px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003ePlease provide your entire search algorithm, not just hard coded solutions.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 373.95px 7.91667px; transform-origin: 373.95px 7.91667px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eHint: Maybe you can reuse some functions from the preparation phase. You can find a C++ implementation for the entire puzzle on \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://github.com/deverw/IQpuzzler\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003ehttps://github.com/deverw/IQpuzzler\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function solutions = IQpuzzler2(pieces)\r\n  y = x;\r\nend","test_suite":"%%\r\npieces={ [1 1;1 0],[0 2;0 2;2 2],[3 3 3;0 3 0],[4 4 0;0 4 4],[5 5 5;5 5 0] };\r\n[r,c]=deal(4,5);\r\nboard=zeros(r,c);\r\nnsol=14;  % confirmed by brute force\r\ntic;\r\nsolutions=IQpuzzler2(pieces);\r\ntoc;        % Just curious: Can you beat 1s?\r\nassert(ndims(solutions)==3,'3-D array expected.');\r\nassert(size(solutions,1)==r,'%d rows expected.',r);\r\nassert(size(solutions,2)==c,'%d columns expected.',c);\r\nassert(size(solutions,3)==nsol,'%d solutions expected.',nsol);\r\nfor n=1:nsol\r\n    s=solutions(:,:,n);\r\n    assert(isequal(board(board~=0),s(board~=0)),'Solution %d: Fixed pieces on input board expected.',n)\r\n    assert(nnz(s)==r*c,'Solution %d: Full board expected.',n);\r\n    bsum=0;\r\n    for p=1:numel(pieces)\r\n        piece=pieces{p};\r\n        pn=max(max(piece));\r\n        bsum=bsum+pn*nnz(piece);\r\n        assert(nnz(s==pn)==nnz(piece),'Solution %d: Number of elements of piece %d does not match.',n,pn);\r\n        arr=false;\r\n        orientations=rotflip2d(piece);\r\n        for o=1:numel(orientations)\r\n            if nnz(conv2(1*(s==pn),rot90(orientations{o},2),'valid')==sum(sum(piece)))\u003e0\r\n                arr=true;\r\n                break;\r\n            end\r\n        end\r\n        assert(arr,'Solution %d: Piece %d arranged incorrectly.',n,pn);\r\n    end\r\n    assert(sum(sum(s))==bsum,'Solution %d: Original piece numbers expected.',n);\r\n    for m=n+1:nsol\r\n        assert(~isequal(s,solutions(:,:,m)),'Solutions %d and %d are identical.',n,m);\r\n        assert(~isequal(fliplr(s),solutions(:,:,m)),'Solutions %d and %d are symmetric.',n,m);\r\n        assert(~isequal(flipud(s),solutions(:,:,m)),'Solutions %d and %d are symmetric.',n,m);\r\n        assert(~isequal(rot90(s,2),solutions(:,:,m)),'Solutions %d and %d are symmetric.',n,m);\r\n    end\r\nend\r\n\r\nfunction orientations=rotflip2d(piece)\r\n% Returns all non-identical orientations of a 2-D matrix that can be produced by rotating or flipping it.\r\n% Input is an M-by-N matrix. Output is a 1-by-P cell array containing P unique M-by-N or N-by-M matrices.\r\n    orientations=cell(1,8);\r\n    orientations{1}=piece;\r\n    for n=2:4\r\n        orientations{n}=rot90(orientations{n-1});\r\n    end\r\n    orientations{5}=fliplr(orientations{4});\r\n    for n=6:8\r\n        orientations{n}=rot90(orientations{n-1});\r\n    end\r\n    d=false(1,8);\r\n    for p=1:7\r\n        for q=p+1:8\r\n            if isequal(orientations{p},orientations{q})\r\n                d(q)=true;\r\n            end\r\n        end\r\n    end\r\n    orientations(d)=[];\r\nend\r\n%%\r\nfiletext = fileread('IQpuzzler2.m');\r\nassert(~contains(filetext,'str2num'));\r\nassert(~contains(filetext,'str2double'));\r\nassert(~contains(filetext,'regexp'));\r\nassert(~contains(filetext,'evalc'));","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":2414210,"edited_by":2414210,"edited_at":"2022-11-10T17:57:09.000Z","deleted_by":null,"deleted_at":null,"solvers_count":3,"test_suite_updated_at":"2022-11-10T17:57:09.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2022-11-10T10:54:03.000Z","updated_at":"2022-11-10T17:57:09.000Z","published_at":"2022-11-10T11:58:23.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWe are playing a simplified version of IQpuzzler, with a smaller board of 4-by-5 spaces and just 5 pieces, as shown in the picture:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"240\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"320\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYou are provided a cell array with one cell per piece. Each cell contains an N-by-M matrix with zeros and one unique value (the piece number) representing the positions of the 3 to 5 elements that define each piece. In our case, the pieces are provided as\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[pieces={ [1 1;\\n          1 0],...\\n         [0 2;\\n          0 2;\\n          2 2],...\\n         [3 3 3;\\n          0 3 0],...\\n         [4 4 0;\\n          0 4 4],...\\n         [5 5 5;\\n          5 5 0] };]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePlease note that the orientation of each piece in your solutions might be different from the one provided as input. For example, the red piece (number 4) was flipped from left to right before being placed on the board. The pieces can be rotated in steps of 90 degrees, flipped vertically or horizontally.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYour solution set needs to be provided as a 3-D array with 4 rows, 5 columns and N layers, where N is the number of possible arrangements of the given pieces. The order of your solution set along the 3rd dimension does not matter, as long as it provides \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eall valid solutions\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ewithout repetitions\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ewithout symmetric solutions\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e (180° rotations or flippings of other solutions).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor example, the solution above would be represented as\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[[5 5 5 2 2;\\n 5 5 4 4 2;\\n 1 4 4 3 2;\\n 1 1 3 3 3]]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePlease provide your entire search algorithm, not just hard coded solutions.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eHint: Maybe you can reuse some functions from the preparation phase. You can find a C++ implementation for the entire puzzle on \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://github.com/deverw/IQpuzzler\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ehttps://github.com/deverw/IQpuzzler\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.jpeg\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.jpeg\",\"contentType\":\"image/jpeg\",\"content\":\"data:image/jpeg;base64,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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"}],"term":"tag:\"flipping\"","current_player_id":null,"fields":[{"name":"page","type":"integer","callback":null,"default":1,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"per_page","type":"integer","callback":null,"default":50,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"sort","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"body","type":"text","callback":null,"default":"*:*","directive":null,"facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":false},{"name":"group","type":"string","callback":null,"default":null,"directive":"group","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"difficulty_rating_bin","type":"string","callback":null,"default":null,"directive":"difficulty_rating_bin","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"id","type":"integer","callback":null,"default":null,"directive":"id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"tag","type":"string","callback":null,"default":null,"directive":"tag","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"product","type":"string","callback":null,"default":null,"directive":"product","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_at","type":"timeframe","callback":{},"default":null,"directive":"created_at","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"profile_id","type":"integer","callback":null,"default":null,"directive":"author_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_by","type":"string","callback":null,"default":null,"directive":"author","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player_id","type":"integer","callback":null,"default":null,"directive":"solver_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player","type":"string","callback":null,"default":null,"directive":"solver","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"solvers_count","type":"integer","callback":null,"default":null,"directive":"solvers_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"comments_count","type":"integer","callback":null,"default":null,"directive":"comments_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"likes_count","type":"integer","callback":null,"default":null,"directive":"likes_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leader_id","type":"integer","callback":null,"default":null,"directive":"leader_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leading_solution","type":"integer","callback":null,"default":null,"directive":"leading_solution","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true}],"filters":[{"name":"asset_type","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":"\"cody:problem\"","prepend":true},{"name":"profile_id","type":"integer","callback":{},"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":"author_id","static":null,"prepend":true}],"query":{"params":{"per_page":50,"term":"tag:\"flipping\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"flipping\"","","\"","flipping","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f74d8fa5bf0\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f74d8fa5b50\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f74d8fa3350\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f74d8fa5e70\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f74d8fa5dd0\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f74d8fa5d30\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f74d8fa5c90\u003e":"tag:\"flipping\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f74d8fa5c90\u003e":"tag:\"flipping\""},"queried_facets":{}},"query_backend":{"connection":{"configuration":{"index_url":"http://index-op-v2/solr/","query_url":"http://search-op-v2/solr/","direct_access_index_urls":["http://index-op-v2/solr/"],"direct_access_query_urls":["http://search-op-v2/solr/"],"timeout":10,"vhost":"search","exchange":"search.topic","heartbeat":30,"pre_index_mode":false,"host":"rabbitmq-eks","port":5672,"username":"search","password":"J3bGPZzQ7asjJcCk","virtual_host":"search","indexer":"amqp","http_logging":"true","core":"cody"},"query_connection":{"uri":"http://search-op-v2/solr/cody/","proxy":null,"connection":{"parallel_manager":null,"headers":{"User-Agent":"Faraday v1.0.1"},"params":{},"options":{"params_encoder":"Faraday::FlatParamsEncoder","proxy":null,"bind":null,"timeout":null,"open_timeout":null,"read_timeout":null,"write_timeout":null,"boundary":null,"oauth":null,"context":null,"on_data":null},"ssl":{"verify":true,"ca_file":null,"ca_path":null,"verify_mode":null,"cert_store":null,"client_cert":null,"client_key":null,"certificate":null,"private_key":null,"verify_depth":null,"version":null,"min_version":null,"max_version":null},"default_parallel_manager":null,"builder":{"adapter":{"name":"Faraday::Adapter::NetHttp","args":[],"block":null},"handlers":[{"name":"Faraday::Response::RaiseError","args":[],"block":null}],"app":{"app":{"ssl_cert_store":{"verify_callback":null,"error":null,"error_string":null,"chain":null,"time":null},"app":{},"connection_options":{},"config_block":null}}},"url_prefix":"http://search-op-v2/solr/cody/","manual_proxy":false,"proxy":null},"update_format":"RSolr::JSON::Generator","update_path":"update","options":{"url":"http://search-op-v2/solr/cody"}}},"query":{"params":{"per_page":50,"term":"tag:\"flipping\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"flipping\"","","\"","flipping","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f74d8fa5bf0\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f74d8fa5b50\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f74d8fa3350\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f74d8fa5e70\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f74d8fa5dd0\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f74d8fa5d30\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f74d8fa5c90\u003e":"tag:\"flipping\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f74d8fa5c90\u003e":"tag:\"flipping\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":56573,"difficulty_rating":"hard"}]}}