mediapipe-nightly 0.10.21.post20250114__cp310-cp310-manylinux_2_28_x86_64.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (593) hide show
  1. mediapipe/__init__.py +26 -0
  2. mediapipe/calculators/__init__.py +0 -0
  3. mediapipe/calculators/audio/__init__.py +0 -0
  4. mediapipe/calculators/audio/mfcc_mel_calculators_pb2.py +33 -0
  5. mediapipe/calculators/audio/rational_factor_resample_calculator_pb2.py +33 -0
  6. mediapipe/calculators/audio/spectrogram_calculator_pb2.py +37 -0
  7. mediapipe/calculators/audio/stabilized_log_calculator_pb2.py +31 -0
  8. mediapipe/calculators/audio/time_series_framer_calculator_pb2.py +33 -0
  9. mediapipe/calculators/core/__init__.py +0 -0
  10. mediapipe/calculators/core/bypass_calculator_pb2.py +31 -0
  11. mediapipe/calculators/core/clip_vector_size_calculator_pb2.py +31 -0
  12. mediapipe/calculators/core/concatenate_vector_calculator_pb2.py +31 -0
  13. mediapipe/calculators/core/constant_side_packet_calculator_pb2.py +39 -0
  14. mediapipe/calculators/core/dequantize_byte_array_calculator_pb2.py +31 -0
  15. mediapipe/calculators/core/flow_limiter_calculator_pb2.py +32 -0
  16. mediapipe/calculators/core/gate_calculator_pb2.py +33 -0
  17. mediapipe/calculators/core/get_vector_item_calculator_pb2.py +31 -0
  18. mediapipe/calculators/core/graph_profile_calculator_pb2.py +31 -0
  19. mediapipe/calculators/core/packet_cloner_calculator_pb2.py +31 -0
  20. mediapipe/calculators/core/packet_resampler_calculator_pb2.py +33 -0
  21. mediapipe/calculators/core/packet_thinner_calculator_pb2.py +33 -0
  22. mediapipe/calculators/core/quantize_float_vector_calculator_pb2.py +31 -0
  23. mediapipe/calculators/core/sequence_shift_calculator_pb2.py +31 -0
  24. mediapipe/calculators/core/split_vector_calculator_pb2.py +33 -0
  25. mediapipe/calculators/image/__init__.py +0 -0
  26. mediapipe/calculators/image/bilateral_filter_calculator_pb2.py +31 -0
  27. mediapipe/calculators/image/feature_detector_calculator_pb2.py +31 -0
  28. mediapipe/calculators/image/image_clone_calculator_pb2.py +31 -0
  29. mediapipe/calculators/image/image_cropping_calculator_pb2.py +33 -0
  30. mediapipe/calculators/image/image_transformation_calculator_pb2.py +38 -0
  31. mediapipe/calculators/image/mask_overlay_calculator_pb2.py +33 -0
  32. mediapipe/calculators/image/opencv_encoded_image_to_image_frame_calculator_pb2.py +31 -0
  33. mediapipe/calculators/image/opencv_image_encoder_calculator_pb2.py +35 -0
  34. mediapipe/calculators/image/recolor_calculator_pb2.py +34 -0
  35. mediapipe/calculators/image/rotation_mode_pb2.py +29 -0
  36. mediapipe/calculators/image/scale_image_calculator_pb2.py +34 -0
  37. mediapipe/calculators/image/segmentation_smoothing_calculator_pb2.py +31 -0
  38. mediapipe/calculators/image/set_alpha_calculator_pb2.py +31 -0
  39. mediapipe/calculators/image/warp_affine_calculator_pb2.py +36 -0
  40. mediapipe/calculators/internal/__init__.py +0 -0
  41. mediapipe/calculators/internal/callback_packet_calculator_pb2.py +33 -0
  42. mediapipe/calculators/tensor/__init__.py +0 -0
  43. mediapipe/calculators/tensor/audio_to_tensor_calculator_pb2.py +35 -0
  44. mediapipe/calculators/tensor/bert_preprocessor_calculator_pb2.py +31 -0
  45. mediapipe/calculators/tensor/feedback_tensors_calculator_pb2.py +37 -0
  46. mediapipe/calculators/tensor/image_to_tensor_calculator_pb2.py +40 -0
  47. mediapipe/calculators/tensor/inference_calculator_pb2.py +63 -0
  48. mediapipe/calculators/tensor/landmarks_to_tensor_calculator_pb2.py +33 -0
  49. mediapipe/calculators/tensor/regex_preprocessor_calculator_pb2.py +31 -0
  50. mediapipe/calculators/tensor/tensor_converter_calculator_pb2.py +34 -0
  51. mediapipe/calculators/tensor/tensor_to_joints_calculator_pb2.py +31 -0
  52. mediapipe/calculators/tensor/tensors_readback_calculator_pb2.py +35 -0
  53. mediapipe/calculators/tensor/tensors_to_audio_calculator_pb2.py +33 -0
  54. mediapipe/calculators/tensor/tensors_to_classification_calculator_pb2.py +44 -0
  55. mediapipe/calculators/tensor/tensors_to_detections_calculator_pb2.py +39 -0
  56. mediapipe/calculators/tensor/tensors_to_floats_calculator_pb2.py +33 -0
  57. mediapipe/calculators/tensor/tensors_to_landmarks_calculator_pb2.py +33 -0
  58. mediapipe/calculators/tensor/tensors_to_segmentation_calculator_pb2.py +34 -0
  59. mediapipe/calculators/tensor/vector_to_tensor_calculator_pb2.py +27 -0
  60. mediapipe/calculators/tflite/__init__.py +0 -0
  61. mediapipe/calculators/tflite/ssd_anchors_calculator_pb2.py +32 -0
  62. mediapipe/calculators/tflite/tflite_converter_calculator_pb2.py +33 -0
  63. mediapipe/calculators/tflite/tflite_custom_op_resolver_calculator_pb2.py +31 -0
  64. mediapipe/calculators/tflite/tflite_inference_calculator_pb2.py +49 -0
  65. mediapipe/calculators/tflite/tflite_tensors_to_classification_calculator_pb2.py +31 -0
  66. mediapipe/calculators/tflite/tflite_tensors_to_detections_calculator_pb2.py +31 -0
  67. mediapipe/calculators/tflite/tflite_tensors_to_landmarks_calculator_pb2.py +33 -0
  68. mediapipe/calculators/tflite/tflite_tensors_to_segmentation_calculator_pb2.py +31 -0
  69. mediapipe/calculators/util/__init__.py +0 -0
  70. mediapipe/calculators/util/align_hand_to_pose_in_world_calculator_pb2.py +31 -0
  71. mediapipe/calculators/util/annotation_overlay_calculator_pb2.py +32 -0
  72. mediapipe/calculators/util/association_calculator_pb2.py +31 -0
  73. mediapipe/calculators/util/collection_has_min_size_calculator_pb2.py +31 -0
  74. mediapipe/calculators/util/combine_joints_calculator_pb2.py +36 -0
  75. mediapipe/calculators/util/detection_label_id_to_text_calculator_pb2.py +36 -0
  76. mediapipe/calculators/util/detections_to_rects_calculator_pb2.py +33 -0
  77. mediapipe/calculators/util/detections_to_render_data_calculator_pb2.py +33 -0
  78. mediapipe/calculators/util/face_to_rect_calculator_pb2.py +26 -0
  79. mediapipe/calculators/util/filter_detections_calculator_pb2.py +31 -0
  80. mediapipe/calculators/util/flat_color_image_calculator_pb2.py +32 -0
  81. mediapipe/calculators/util/labels_to_render_data_calculator_pb2.py +34 -0
  82. mediapipe/calculators/util/landmark_projection_calculator_pb2.py +31 -0
  83. mediapipe/calculators/util/landmarks_refinement_calculator_pb2.py +41 -0
  84. mediapipe/calculators/util/landmarks_smoothing_calculator_pb2.py +33 -0
  85. mediapipe/calculators/util/landmarks_to_detection_calculator_pb2.py +31 -0
  86. mediapipe/calculators/util/landmarks_to_floats_calculator_pb2.py +31 -0
  87. mediapipe/calculators/util/landmarks_to_render_data_calculator_pb2.py +32 -0
  88. mediapipe/calculators/util/landmarks_transformation_calculator_pb2.py +37 -0
  89. mediapipe/calculators/util/latency_pb2.py +26 -0
  90. mediapipe/calculators/util/local_file_contents_calculator_pb2.py +31 -0
  91. mediapipe/calculators/util/logic_calculator_pb2.py +34 -0
  92. mediapipe/calculators/util/non_max_suppression_calculator_pb2.py +35 -0
  93. mediapipe/calculators/util/packet_frequency_calculator_pb2.py +31 -0
  94. mediapipe/calculators/util/packet_frequency_pb2.py +26 -0
  95. mediapipe/calculators/util/packet_latency_calculator_pb2.py +31 -0
  96. mediapipe/calculators/util/rect_to_render_data_calculator_pb2.py +32 -0
  97. mediapipe/calculators/util/rect_to_render_scale_calculator_pb2.py +31 -0
  98. mediapipe/calculators/util/rect_transformation_calculator_pb2.py +31 -0
  99. mediapipe/calculators/util/refine_landmarks_from_heatmap_calculator_pb2.py +31 -0
  100. mediapipe/calculators/util/resource_provider_calculator_pb2.py +28 -0
  101. mediapipe/calculators/util/set_joints_visibility_calculator_pb2.py +41 -0
  102. mediapipe/calculators/util/thresholding_calculator_pb2.py +31 -0
  103. mediapipe/calculators/util/timed_box_list_id_to_label_calculator_pb2.py +31 -0
  104. mediapipe/calculators/util/timed_box_list_to_render_data_calculator_pb2.py +32 -0
  105. mediapipe/calculators/util/top_k_scores_calculator_pb2.py +31 -0
  106. mediapipe/calculators/util/visibility_copy_calculator_pb2.py +27 -0
  107. mediapipe/calculators/util/visibility_smoothing_calculator_pb2.py +31 -0
  108. mediapipe/calculators/video/__init__.py +0 -0
  109. mediapipe/calculators/video/box_detector_calculator_pb2.py +32 -0
  110. mediapipe/calculators/video/box_tracker_calculator_pb2.py +32 -0
  111. mediapipe/calculators/video/flow_packager_calculator_pb2.py +32 -0
  112. mediapipe/calculators/video/flow_to_image_calculator_pb2.py +31 -0
  113. mediapipe/calculators/video/motion_analysis_calculator_pb2.py +42 -0
  114. mediapipe/calculators/video/opencv_video_encoder_calculator_pb2.py +31 -0
  115. mediapipe/calculators/video/tool/__init__.py +0 -0
  116. mediapipe/calculators/video/tool/flow_quantizer_model_pb2.py +26 -0
  117. mediapipe/calculators/video/tracked_detection_manager_calculator_pb2.py +32 -0
  118. mediapipe/calculators/video/video_pre_stream_calculator_pb2.py +35 -0
  119. mediapipe/examples/__init__.py +14 -0
  120. mediapipe/examples/desktop/__init__.py +14 -0
  121. mediapipe/framework/__init__.py +0 -0
  122. mediapipe/framework/calculator_options_pb2.py +29 -0
  123. mediapipe/framework/calculator_pb2.py +59 -0
  124. mediapipe/framework/calculator_profile_pb2.py +48 -0
  125. mediapipe/framework/deps/__init__.py +0 -0
  126. mediapipe/framework/deps/proto_descriptor_pb2.py +29 -0
  127. mediapipe/framework/formats/__init__.py +0 -0
  128. mediapipe/framework/formats/affine_transform_data_pb2.py +28 -0
  129. mediapipe/framework/formats/annotation/__init__.py +0 -0
  130. mediapipe/framework/formats/annotation/locus_pb2.py +32 -0
  131. mediapipe/framework/formats/annotation/rasterization_pb2.py +29 -0
  132. mediapipe/framework/formats/body_rig_pb2.py +28 -0
  133. mediapipe/framework/formats/classification_pb2.py +31 -0
  134. mediapipe/framework/formats/detection_pb2.py +36 -0
  135. mediapipe/framework/formats/image_file_properties_pb2.py +26 -0
  136. mediapipe/framework/formats/image_format_pb2.py +29 -0
  137. mediapipe/framework/formats/landmark_pb2.py +37 -0
  138. mediapipe/framework/formats/location_data_pb2.py +38 -0
  139. mediapipe/framework/formats/matrix_data_pb2.py +31 -0
  140. mediapipe/framework/formats/motion/__init__.py +0 -0
  141. mediapipe/framework/formats/motion/optical_flow_field_data_pb2.py +30 -0
  142. mediapipe/framework/formats/object_detection/__init__.py +0 -0
  143. mediapipe/framework/formats/object_detection/anchor_pb2.py +26 -0
  144. mediapipe/framework/formats/rect_pb2.py +29 -0
  145. mediapipe/framework/formats/time_series_header_pb2.py +28 -0
  146. mediapipe/framework/graph_runtime_info_pb2.py +31 -0
  147. mediapipe/framework/mediapipe_options_pb2.py +27 -0
  148. mediapipe/framework/packet_factory_pb2.py +31 -0
  149. mediapipe/framework/packet_generator_pb2.py +33 -0
  150. mediapipe/framework/status_handler_pb2.py +28 -0
  151. mediapipe/framework/stream_handler/__init__.py +0 -0
  152. mediapipe/framework/stream_handler/default_input_stream_handler_pb2.py +27 -0
  153. mediapipe/framework/stream_handler/fixed_size_input_stream_handler_pb2.py +27 -0
  154. mediapipe/framework/stream_handler/sync_set_input_stream_handler_pb2.py +29 -0
  155. mediapipe/framework/stream_handler/timestamp_align_input_stream_handler_pb2.py +27 -0
  156. mediapipe/framework/stream_handler_pb2.py +30 -0
  157. mediapipe/framework/test_calculators_pb2.py +31 -0
  158. mediapipe/framework/thread_pool_executor_pb2.py +29 -0
  159. mediapipe/framework/tool/__init__.py +0 -0
  160. mediapipe/framework/tool/calculator_graph_template_pb2.py +44 -0
  161. mediapipe/framework/tool/field_data_pb2.py +28 -0
  162. mediapipe/framework/tool/node_chain_subgraph_pb2.py +31 -0
  163. mediapipe/framework/tool/packet_generator_wrapper_calculator_pb2.py +28 -0
  164. mediapipe/framework/tool/source_pb2.py +33 -0
  165. mediapipe/framework/tool/switch_container_pb2.py +32 -0
  166. mediapipe/gpu/__init__.py +0 -0
  167. mediapipe/gpu/copy_calculator_pb2.py +33 -0
  168. mediapipe/gpu/gl_animation_overlay_calculator_pb2.py +31 -0
  169. mediapipe/gpu/gl_context_options_pb2.py +31 -0
  170. mediapipe/gpu/gl_scaler_calculator_pb2.py +32 -0
  171. mediapipe/gpu/gl_surface_sink_calculator_pb2.py +32 -0
  172. mediapipe/gpu/gpu_origin_pb2.py +29 -0
  173. mediapipe/gpu/scale_mode_pb2.py +28 -0
  174. mediapipe/model_maker/__init__.py +27 -0
  175. mediapipe/model_maker/setup.py +107 -0
  176. mediapipe/modules/__init__.py +0 -0
  177. mediapipe/modules/face_detection/__init__.py +0 -0
  178. mediapipe/modules/face_detection/face_detection_full_range_cpu.binarypb +0 -0
  179. mediapipe/modules/face_detection/face_detection_full_range_sparse.tflite +0 -0
  180. mediapipe/modules/face_detection/face_detection_pb2.py +30 -0
  181. mediapipe/modules/face_detection/face_detection_short_range.tflite +0 -0
  182. mediapipe/modules/face_detection/face_detection_short_range_cpu.binarypb +0 -0
  183. mediapipe/modules/face_geometry/__init__.py +0 -0
  184. mediapipe/modules/face_geometry/data/__init__.py +0 -0
  185. mediapipe/modules/face_geometry/effect_renderer_calculator_pb2.py +27 -0
  186. mediapipe/modules/face_geometry/env_generator_calculator_pb2.py +28 -0
  187. mediapipe/modules/face_geometry/geometry_pipeline_calculator_pb2.py +27 -0
  188. mediapipe/modules/face_geometry/libs/__init__.py +0 -0
  189. mediapipe/modules/face_geometry/protos/__init__.py +0 -0
  190. mediapipe/modules/face_geometry/protos/environment_pb2.py +31 -0
  191. mediapipe/modules/face_geometry/protos/face_geometry_pb2.py +29 -0
  192. mediapipe/modules/face_geometry/protos/geometry_pipeline_metadata_pb2.py +32 -0
  193. mediapipe/modules/face_geometry/protos/mesh_3d_pb2.py +31 -0
  194. mediapipe/modules/face_landmark/__init__.py +0 -0
  195. mediapipe/modules/face_landmark/face_landmark.tflite +0 -0
  196. mediapipe/modules/face_landmark/face_landmark_front_cpu.binarypb +0 -0
  197. mediapipe/modules/face_landmark/face_landmark_with_attention.tflite +0 -0
  198. mediapipe/modules/hand_landmark/__init__.py +0 -0
  199. mediapipe/modules/hand_landmark/calculators/__init__.py +0 -0
  200. mediapipe/modules/hand_landmark/hand_landmark_full.tflite +0 -0
  201. mediapipe/modules/hand_landmark/hand_landmark_lite.tflite +0 -0
  202. mediapipe/modules/hand_landmark/hand_landmark_tracking_cpu.binarypb +0 -0
  203. mediapipe/modules/hand_landmark/handedness.txt +2 -0
  204. mediapipe/modules/holistic_landmark/__init__.py +0 -0
  205. mediapipe/modules/holistic_landmark/calculators/__init__.py +0 -0
  206. mediapipe/modules/holistic_landmark/calculators/roi_tracking_calculator_pb2.py +37 -0
  207. mediapipe/modules/holistic_landmark/hand_recrop.tflite +0 -0
  208. mediapipe/modules/holistic_landmark/holistic_landmark_cpu.binarypb +0 -0
  209. mediapipe/modules/iris_landmark/__init__.py +0 -0
  210. mediapipe/modules/iris_landmark/iris_landmark.tflite +0 -0
  211. mediapipe/modules/objectron/__init__.py +0 -0
  212. mediapipe/modules/objectron/calculators/__init__.py +0 -0
  213. mediapipe/modules/objectron/calculators/a_r_capture_metadata_pb2.py +102 -0
  214. mediapipe/modules/objectron/calculators/annotation_data_pb2.py +38 -0
  215. mediapipe/modules/objectron/calculators/belief_decoder_config_pb2.py +28 -0
  216. mediapipe/modules/objectron/calculators/camera_parameters_pb2.py +30 -0
  217. mediapipe/modules/objectron/calculators/filter_detection_calculator_pb2.py +35 -0
  218. mediapipe/modules/objectron/calculators/frame_annotation_to_rect_calculator_pb2.py +31 -0
  219. mediapipe/modules/objectron/calculators/frame_annotation_tracker_calculator_pb2.py +31 -0
  220. mediapipe/modules/objectron/calculators/lift_2d_frame_annotation_to_3d_calculator_pb2.py +32 -0
  221. mediapipe/modules/objectron/calculators/object_pb2.py +38 -0
  222. mediapipe/modules/objectron/calculators/tensors_to_objects_calculator_pb2.py +32 -0
  223. mediapipe/modules/objectron/calculators/tflite_tensors_to_objects_calculator_pb2.py +32 -0
  224. mediapipe/modules/objectron/object_detection_oidv4_labelmap.txt +24 -0
  225. mediapipe/modules/objectron/objectron_cpu.binarypb +0 -0
  226. mediapipe/modules/palm_detection/__init__.py +0 -0
  227. mediapipe/modules/palm_detection/palm_detection_full.tflite +0 -0
  228. mediapipe/modules/palm_detection/palm_detection_lite.tflite +0 -0
  229. mediapipe/modules/pose_detection/__init__.py +0 -0
  230. mediapipe/modules/pose_detection/pose_detection.tflite +0 -0
  231. mediapipe/modules/pose_landmark/__init__.py +0 -0
  232. mediapipe/modules/pose_landmark/pose_landmark_cpu.binarypb +0 -0
  233. mediapipe/modules/pose_landmark/pose_landmark_full.tflite +0 -0
  234. mediapipe/modules/selfie_segmentation/__init__.py +0 -0
  235. mediapipe/modules/selfie_segmentation/selfie_segmentation.tflite +0 -0
  236. mediapipe/modules/selfie_segmentation/selfie_segmentation_cpu.binarypb +0 -0
  237. mediapipe/modules/selfie_segmentation/selfie_segmentation_landscape.tflite +0 -0
  238. mediapipe/python/__init__.py +29 -0
  239. mediapipe/python/_framework_bindings.cpython-310-x86_64-linux-gnu.so +0 -0
  240. mediapipe/python/calculator_graph_test.py +251 -0
  241. mediapipe/python/image_frame_test.py +194 -0
  242. mediapipe/python/image_test.py +218 -0
  243. mediapipe/python/packet_creator.py +275 -0
  244. mediapipe/python/packet_getter.py +120 -0
  245. mediapipe/python/packet_test.py +533 -0
  246. mediapipe/python/solution_base.py +604 -0
  247. mediapipe/python/solution_base_test.py +396 -0
  248. mediapipe/python/solutions/__init__.py +27 -0
  249. mediapipe/python/solutions/download_utils.py +37 -0
  250. mediapipe/python/solutions/drawing_styles.py +249 -0
  251. mediapipe/python/solutions/drawing_utils.py +320 -0
  252. mediapipe/python/solutions/drawing_utils_test.py +258 -0
  253. mediapipe/python/solutions/face_detection.py +105 -0
  254. mediapipe/python/solutions/face_detection_test.py +92 -0
  255. mediapipe/python/solutions/face_mesh.py +125 -0
  256. mediapipe/python/solutions/face_mesh_connections.py +500 -0
  257. mediapipe/python/solutions/face_mesh_test.py +170 -0
  258. mediapipe/python/solutions/hands.py +153 -0
  259. mediapipe/python/solutions/hands_connections.py +32 -0
  260. mediapipe/python/solutions/hands_test.py +219 -0
  261. mediapipe/python/solutions/holistic.py +167 -0
  262. mediapipe/python/solutions/holistic_test.py +142 -0
  263. mediapipe/python/solutions/objectron.py +288 -0
  264. mediapipe/python/solutions/objectron_test.py +81 -0
  265. mediapipe/python/solutions/pose.py +192 -0
  266. mediapipe/python/solutions/pose_connections.py +22 -0
  267. mediapipe/python/solutions/pose_test.py +262 -0
  268. mediapipe/python/solutions/selfie_segmentation.py +76 -0
  269. mediapipe/python/solutions/selfie_segmentation_test.py +68 -0
  270. mediapipe/python/timestamp_test.py +78 -0
  271. mediapipe/tasks/__init__.py +14 -0
  272. mediapipe/tasks/cc/__init__.py +0 -0
  273. mediapipe/tasks/cc/audio/__init__.py +0 -0
  274. mediapipe/tasks/cc/audio/audio_classifier/__init__.py +0 -0
  275. mediapipe/tasks/cc/audio/audio_classifier/proto/__init__.py +0 -0
  276. mediapipe/tasks/cc/audio/audio_classifier/proto/audio_classifier_graph_options_pb2.py +35 -0
  277. mediapipe/tasks/cc/audio/audio_embedder/__init__.py +0 -0
  278. mediapipe/tasks/cc/audio/audio_embedder/proto/__init__.py +0 -0
  279. mediapipe/tasks/cc/audio/audio_embedder/proto/audio_embedder_graph_options_pb2.py +35 -0
  280. mediapipe/tasks/cc/audio/core/__init__.py +0 -0
  281. mediapipe/tasks/cc/audio/utils/__init__.py +0 -0
  282. mediapipe/tasks/cc/components/__init__.py +0 -0
  283. mediapipe/tasks/cc/components/calculators/__init__.py +0 -0
  284. mediapipe/tasks/cc/components/calculators/classification_aggregation_calculator_pb2.py +31 -0
  285. mediapipe/tasks/cc/components/calculators/score_calibration_calculator_pb2.py +35 -0
  286. mediapipe/tasks/cc/components/calculators/tensors_to_embeddings_calculator_pb2.py +32 -0
  287. mediapipe/tasks/cc/components/containers/__init__.py +0 -0
  288. mediapipe/tasks/cc/components/containers/proto/__init__.py +0 -0
  289. mediapipe/tasks/cc/components/containers/proto/classifications_pb2.py +30 -0
  290. mediapipe/tasks/cc/components/containers/proto/embeddings_pb2.py +35 -0
  291. mediapipe/tasks/cc/components/containers/proto/landmarks_detection_result_pb2.py +32 -0
  292. mediapipe/tasks/cc/components/processors/__init__.py +0 -0
  293. mediapipe/tasks/cc/components/processors/proto/__init__.py +0 -0
  294. mediapipe/tasks/cc/components/processors/proto/classification_postprocessing_graph_options_pb2.py +38 -0
  295. mediapipe/tasks/cc/components/processors/proto/classifier_options_pb2.py +27 -0
  296. mediapipe/tasks/cc/components/processors/proto/detection_postprocessing_graph_options_pb2.py +36 -0
  297. mediapipe/tasks/cc/components/processors/proto/detector_options_pb2.py +27 -0
  298. mediapipe/tasks/cc/components/processors/proto/embedder_options_pb2.py +27 -0
  299. mediapipe/tasks/cc/components/processors/proto/embedding_postprocessing_graph_options_pb2.py +32 -0
  300. mediapipe/tasks/cc/components/processors/proto/image_preprocessing_graph_options_pb2.py +34 -0
  301. mediapipe/tasks/cc/components/processors/proto/text_model_type_pb2.py +28 -0
  302. mediapipe/tasks/cc/components/processors/proto/text_preprocessing_graph_options_pb2.py +32 -0
  303. mediapipe/tasks/cc/components/utils/__init__.py +0 -0
  304. mediapipe/tasks/cc/core/__init__.py +0 -0
  305. mediapipe/tasks/cc/core/proto/__init__.py +0 -0
  306. mediapipe/tasks/cc/core/proto/acceleration_pb2.py +28 -0
  307. mediapipe/tasks/cc/core/proto/base_options_pb2.py +30 -0
  308. mediapipe/tasks/cc/core/proto/external_file_pb2.py +31 -0
  309. mediapipe/tasks/cc/core/proto/inference_subgraph_pb2.py +32 -0
  310. mediapipe/tasks/cc/core/proto/model_resources_calculator_pb2.py +32 -0
  311. mediapipe/tasks/cc/genai/__init__.py +0 -0
  312. mediapipe/tasks/cc/genai/inference/__init__.py +0 -0
  313. mediapipe/tasks/cc/genai/inference/c/__init__.py +0 -0
  314. mediapipe/tasks/cc/genai/inference/calculators/__init__.py +0 -0
  315. mediapipe/tasks/cc/genai/inference/calculators/detokenizer_calculator_pb2.py +27 -0
  316. mediapipe/tasks/cc/genai/inference/calculators/llm_gpu_calculator_pb2.py +32 -0
  317. mediapipe/tasks/cc/genai/inference/calculators/model_data_calculator_pb2.py +27 -0
  318. mediapipe/tasks/cc/genai/inference/calculators/tokenizer_calculator_pb2.py +29 -0
  319. mediapipe/tasks/cc/genai/inference/common/__init__.py +0 -0
  320. mediapipe/tasks/cc/genai/inference/proto/__init__.py +0 -0
  321. mediapipe/tasks/cc/genai/inference/proto/llm_file_metadata_pb2.py +32 -0
  322. mediapipe/tasks/cc/genai/inference/proto/llm_params_pb2.py +33 -0
  323. mediapipe/tasks/cc/genai/inference/proto/prompt_template_pb2.py +27 -0
  324. mediapipe/tasks/cc/genai/inference/proto/sampler_params_pb2.py +29 -0
  325. mediapipe/tasks/cc/genai/inference/proto/transformer_params_pb2.py +45 -0
  326. mediapipe/tasks/cc/genai/inference/utils/__init__.py +0 -0
  327. mediapipe/tasks/cc/genai/inference/utils/llm_utils/__init__.py +0 -0
  328. mediapipe/tasks/cc/genai/inference/utils/xnn_utils/__init__.py +0 -0
  329. mediapipe/tasks/cc/metadata/__init__.py +0 -0
  330. mediapipe/tasks/cc/metadata/python/__init__.py +0 -0
  331. mediapipe/tasks/cc/metadata/python/_pywrap_metadata_version.cpython-310-x86_64-linux-gnu.so +0 -0
  332. mediapipe/tasks/cc/metadata/tests/__init__.py +0 -0
  333. mediapipe/tasks/cc/metadata/utils/__init__.py +0 -0
  334. mediapipe/tasks/cc/text/__init__.py +0 -0
  335. mediapipe/tasks/cc/text/custom_ops/__init__.py +0 -0
  336. mediapipe/tasks/cc/text/custom_ops/ragged/__init__.py +0 -0
  337. mediapipe/tasks/cc/text/custom_ops/sentencepiece/__init__.py +0 -0
  338. mediapipe/tasks/cc/text/custom_ops/sentencepiece/testdata/__init__.py +0 -0
  339. mediapipe/tasks/cc/text/language_detector/__init__.py +0 -0
  340. mediapipe/tasks/cc/text/language_detector/custom_ops/__init__.py +0 -0
  341. mediapipe/tasks/cc/text/language_detector/custom_ops/utils/__init__.py +0 -0
  342. mediapipe/tasks/cc/text/language_detector/custom_ops/utils/hash/__init__.py +0 -0
  343. mediapipe/tasks/cc/text/language_detector/custom_ops/utils/utf/__init__.py +0 -0
  344. mediapipe/tasks/cc/text/text_classifier/__init__.py +0 -0
  345. mediapipe/tasks/cc/text/text_classifier/proto/__init__.py +0 -0
  346. mediapipe/tasks/cc/text/text_classifier/proto/text_classifier_graph_options_pb2.py +35 -0
  347. mediapipe/tasks/cc/text/text_embedder/__init__.py +0 -0
  348. mediapipe/tasks/cc/text/text_embedder/proto/__init__.py +0 -0
  349. mediapipe/tasks/cc/text/text_embedder/proto/text_embedder_graph_options_pb2.py +35 -0
  350. mediapipe/tasks/cc/text/tokenizers/__init__.py +0 -0
  351. mediapipe/tasks/cc/text/utils/__init__.py +0 -0
  352. mediapipe/tasks/cc/vision/__init__.py +0 -0
  353. mediapipe/tasks/cc/vision/core/__init__.py +0 -0
  354. mediapipe/tasks/cc/vision/custom_ops/__init__.py +0 -0
  355. mediapipe/tasks/cc/vision/face_detector/__init__.py +0 -0
  356. mediapipe/tasks/cc/vision/face_detector/proto/__init__.py +0 -0
  357. mediapipe/tasks/cc/vision/face_detector/proto/face_detector_graph_options_pb2.py +34 -0
  358. mediapipe/tasks/cc/vision/face_geometry/__init__.py +0 -0
  359. mediapipe/tasks/cc/vision/face_geometry/calculators/__init__.py +0 -0
  360. mediapipe/tasks/cc/vision/face_geometry/calculators/env_generator_calculator_pb2.py +28 -0
  361. mediapipe/tasks/cc/vision/face_geometry/calculators/geometry_pipeline_calculator_pb2.py +29 -0
  362. mediapipe/tasks/cc/vision/face_geometry/data/__init__.py +0 -0
  363. mediapipe/tasks/cc/vision/face_geometry/libs/__init__.py +0 -0
  364. mediapipe/tasks/cc/vision/face_geometry/proto/__init__.py +0 -0
  365. mediapipe/tasks/cc/vision/face_geometry/proto/environment_pb2.py +31 -0
  366. mediapipe/tasks/cc/vision/face_geometry/proto/face_geometry_graph_options_pb2.py +29 -0
  367. mediapipe/tasks/cc/vision/face_geometry/proto/face_geometry_pb2.py +29 -0
  368. mediapipe/tasks/cc/vision/face_geometry/proto/geometry_pipeline_metadata_pb2.py +32 -0
  369. mediapipe/tasks/cc/vision/face_geometry/proto/mesh_3d_pb2.py +31 -0
  370. mediapipe/tasks/cc/vision/face_landmarker/__init__.py +0 -0
  371. mediapipe/tasks/cc/vision/face_landmarker/proto/__init__.py +0 -0
  372. mediapipe/tasks/cc/vision/face_landmarker/proto/face_blendshapes_graph_options_pb2.py +34 -0
  373. mediapipe/tasks/cc/vision/face_landmarker/proto/face_landmarker_graph_options_pb2.py +37 -0
  374. mediapipe/tasks/cc/vision/face_landmarker/proto/face_landmarks_detector_graph_options_pb2.py +35 -0
  375. mediapipe/tasks/cc/vision/face_landmarker/proto/tensors_to_face_landmarks_graph_options_pb2.py +32 -0
  376. mediapipe/tasks/cc/vision/face_stylizer/__init__.py +0 -0
  377. mediapipe/tasks/cc/vision/face_stylizer/calculators/__init__.py +0 -0
  378. mediapipe/tasks/cc/vision/face_stylizer/calculators/tensors_to_image_calculator_pb2.py +36 -0
  379. mediapipe/tasks/cc/vision/face_stylizer/proto/__init__.py +0 -0
  380. mediapipe/tasks/cc/vision/face_stylizer/proto/face_stylizer_graph_options_pb2.py +35 -0
  381. mediapipe/tasks/cc/vision/gesture_recognizer/__init__.py +0 -0
  382. mediapipe/tasks/cc/vision/gesture_recognizer/calculators/__init__.py +0 -0
  383. mediapipe/tasks/cc/vision/gesture_recognizer/calculators/combined_prediction_calculator_pb2.py +33 -0
  384. mediapipe/tasks/cc/vision/gesture_recognizer/calculators/landmarks_to_matrix_calculator_pb2.py +31 -0
  385. mediapipe/tasks/cc/vision/gesture_recognizer/proto/__init__.py +0 -0
  386. mediapipe/tasks/cc/vision/gesture_recognizer/proto/gesture_classifier_graph_options_pb2.py +35 -0
  387. mediapipe/tasks/cc/vision/gesture_recognizer/proto/gesture_embedder_graph_options_pb2.py +34 -0
  388. mediapipe/tasks/cc/vision/gesture_recognizer/proto/gesture_recognizer_graph_options_pb2.py +36 -0
  389. mediapipe/tasks/cc/vision/gesture_recognizer/proto/hand_gesture_recognizer_graph_options_pb2.py +36 -0
  390. mediapipe/tasks/cc/vision/hand_detector/__init__.py +0 -0
  391. mediapipe/tasks/cc/vision/hand_detector/proto/__init__.py +0 -0
  392. mediapipe/tasks/cc/vision/hand_detector/proto/hand_detector_graph_options_pb2.py +34 -0
  393. mediapipe/tasks/cc/vision/hand_detector/proto/hand_detector_result_pb2.py +30 -0
  394. mediapipe/tasks/cc/vision/hand_landmarker/__init__.py +0 -0
  395. mediapipe/tasks/cc/vision/hand_landmarker/calculators/__init__.py +0 -0
  396. mediapipe/tasks/cc/vision/hand_landmarker/calculators/hand_association_calculator_pb2.py +31 -0
  397. mediapipe/tasks/cc/vision/hand_landmarker/proto/__init__.py +0 -0
  398. mediapipe/tasks/cc/vision/hand_landmarker/proto/hand_landmarker_graph_options_pb2.py +36 -0
  399. mediapipe/tasks/cc/vision/hand_landmarker/proto/hand_landmarks_detector_graph_options_pb2.py +34 -0
  400. mediapipe/tasks/cc/vision/hand_landmarker/proto/hand_roi_refinement_graph_options_pb2.py +28 -0
  401. mediapipe/tasks/cc/vision/holistic_landmarker/__init__.py +0 -0
  402. mediapipe/tasks/cc/vision/holistic_landmarker/proto/__init__.py +0 -0
  403. mediapipe/tasks/cc/vision/holistic_landmarker/proto/holistic_landmarker_graph_options_pb2.py +34 -0
  404. mediapipe/tasks/cc/vision/holistic_landmarker/proto/holistic_result_pb2.py +29 -0
  405. mediapipe/tasks/cc/vision/image_classifier/__init__.py +0 -0
  406. mediapipe/tasks/cc/vision/image_classifier/proto/__init__.py +0 -0
  407. mediapipe/tasks/cc/vision/image_classifier/proto/image_classifier_graph_options_pb2.py +35 -0
  408. mediapipe/tasks/cc/vision/image_embedder/__init__.py +0 -0
  409. mediapipe/tasks/cc/vision/image_embedder/proto/__init__.py +0 -0
  410. mediapipe/tasks/cc/vision/image_embedder/proto/image_embedder_graph_options_pb2.py +35 -0
  411. mediapipe/tasks/cc/vision/image_generator/__init__.py +0 -0
  412. mediapipe/tasks/cc/vision/image_generator/diffuser/__init__.py +0 -0
  413. mediapipe/tasks/cc/vision/image_generator/diffuser/stable_diffusion_iterate_calculator_pb2.py +40 -0
  414. mediapipe/tasks/cc/vision/image_generator/proto/__init__.py +0 -0
  415. mediapipe/tasks/cc/vision/image_generator/proto/conditioned_image_graph_options_pb2.py +40 -0
  416. mediapipe/tasks/cc/vision/image_generator/proto/control_plugin_graph_options_pb2.py +34 -0
  417. mediapipe/tasks/cc/vision/image_generator/proto/image_generator_graph_options_pb2.py +30 -0
  418. mediapipe/tasks/cc/vision/image_segmenter/__init__.py +0 -0
  419. mediapipe/tasks/cc/vision/image_segmenter/calculators/__init__.py +0 -0
  420. mediapipe/tasks/cc/vision/image_segmenter/calculators/tensors_to_segmentation_calculator_pb2.py +34 -0
  421. mediapipe/tasks/cc/vision/image_segmenter/proto/__init__.py +0 -0
  422. mediapipe/tasks/cc/vision/image_segmenter/proto/image_segmenter_graph_options_pb2.py +35 -0
  423. mediapipe/tasks/cc/vision/image_segmenter/proto/segmenter_options_pb2.py +33 -0
  424. mediapipe/tasks/cc/vision/interactive_segmenter/__init__.py +0 -0
  425. mediapipe/tasks/cc/vision/object_detector/__init__.py +0 -0
  426. mediapipe/tasks/cc/vision/object_detector/proto/__init__.py +0 -0
  427. mediapipe/tasks/cc/vision/object_detector/proto/object_detector_options_pb2.py +34 -0
  428. mediapipe/tasks/cc/vision/pose_detector/__init__.py +0 -0
  429. mediapipe/tasks/cc/vision/pose_detector/proto/__init__.py +0 -0
  430. mediapipe/tasks/cc/vision/pose_detector/proto/pose_detector_graph_options_pb2.py +34 -0
  431. mediapipe/tasks/cc/vision/pose_landmarker/__init__.py +0 -0
  432. mediapipe/tasks/cc/vision/pose_landmarker/proto/__init__.py +0 -0
  433. mediapipe/tasks/cc/vision/pose_landmarker/proto/pose_landmarker_graph_options_pb2.py +36 -0
  434. mediapipe/tasks/cc/vision/pose_landmarker/proto/pose_landmarks_detector_graph_options_pb2.py +34 -0
  435. mediapipe/tasks/cc/vision/utils/__init__.py +0 -0
  436. mediapipe/tasks/cc/vision/utils/ghum/__init__.py +0 -0
  437. mediapipe/tasks/metadata/image_segmenter_metadata_schema.fbs +59 -0
  438. mediapipe/tasks/metadata/image_segmenter_metadata_schema_py_generated.py +108 -0
  439. mediapipe/tasks/metadata/metadata_schema.fbs +732 -0
  440. mediapipe/tasks/metadata/metadata_schema_py_generated.py +3251 -0
  441. mediapipe/tasks/metadata/object_detector_metadata_schema.fbs +98 -0
  442. mediapipe/tasks/metadata/object_detector_metadata_schema_py_generated.py +674 -0
  443. mediapipe/tasks/metadata/schema_py_generated.py +18438 -0
  444. mediapipe/tasks/python/__init__.py +27 -0
  445. mediapipe/tasks/python/audio/__init__.py +33 -0
  446. mediapipe/tasks/python/audio/audio_classifier.py +324 -0
  447. mediapipe/tasks/python/audio/audio_embedder.py +285 -0
  448. mediapipe/tasks/python/audio/core/__init__.py +16 -0
  449. mediapipe/tasks/python/audio/core/audio_record.py +125 -0
  450. mediapipe/tasks/python/audio/core/audio_task_running_mode.py +29 -0
  451. mediapipe/tasks/python/audio/core/base_audio_task_api.py +181 -0
  452. mediapipe/tasks/python/benchmark/__init__.py +13 -0
  453. mediapipe/tasks/python/benchmark/benchmark_utils.py +70 -0
  454. mediapipe/tasks/python/benchmark/vision/__init__.py +13 -0
  455. mediapipe/tasks/python/benchmark/vision/benchmark.py +99 -0
  456. mediapipe/tasks/python/benchmark/vision/core/__init__.py +14 -0
  457. mediapipe/tasks/python/benchmark/vision/core/base_vision_benchmark_api.py +40 -0
  458. mediapipe/tasks/python/components/__init__.py +13 -0
  459. mediapipe/tasks/python/components/containers/__init__.py +53 -0
  460. mediapipe/tasks/python/components/containers/audio_data.py +137 -0
  461. mediapipe/tasks/python/components/containers/bounding_box.py +73 -0
  462. mediapipe/tasks/python/components/containers/category.py +78 -0
  463. mediapipe/tasks/python/components/containers/classification_result.py +111 -0
  464. mediapipe/tasks/python/components/containers/detections.py +181 -0
  465. mediapipe/tasks/python/components/containers/embedding_result.py +89 -0
  466. mediapipe/tasks/python/components/containers/keypoint.py +77 -0
  467. mediapipe/tasks/python/components/containers/landmark.py +122 -0
  468. mediapipe/tasks/python/components/containers/landmark_detection_result.py +106 -0
  469. mediapipe/tasks/python/components/containers/rect.py +109 -0
  470. mediapipe/tasks/python/components/processors/__init__.py +23 -0
  471. mediapipe/tasks/python/components/processors/classifier_options.py +86 -0
  472. mediapipe/tasks/python/components/utils/__init__.py +13 -0
  473. mediapipe/tasks/python/components/utils/cosine_similarity.py +68 -0
  474. mediapipe/tasks/python/core/__init__.py +13 -0
  475. mediapipe/tasks/python/core/base_options.py +121 -0
  476. mediapipe/tasks/python/core/optional_dependencies.py +25 -0
  477. mediapipe/tasks/python/core/task_info.py +139 -0
  478. mediapipe/tasks/python/genai/__init__.py +14 -0
  479. mediapipe/tasks/python/genai/bundler/__init__.py +23 -0
  480. mediapipe/tasks/python/genai/bundler/llm_bundler.py +130 -0
  481. mediapipe/tasks/python/genai/bundler/llm_bundler_test.py +168 -0
  482. mediapipe/tasks/python/genai/converter/__init__.py +24 -0
  483. mediapipe/tasks/python/genai/converter/converter_base.py +179 -0
  484. mediapipe/tasks/python/genai/converter/converter_factory.py +79 -0
  485. mediapipe/tasks/python/genai/converter/llm_converter.py +374 -0
  486. mediapipe/tasks/python/genai/converter/llm_converter_test.py +63 -0
  487. mediapipe/tasks/python/genai/converter/pytorch_converter.py +318 -0
  488. mediapipe/tasks/python/genai/converter/pytorch_converter_test.py +86 -0
  489. mediapipe/tasks/python/genai/converter/quantization_util.py +516 -0
  490. mediapipe/tasks/python/genai/converter/quantization_util_test.py +259 -0
  491. mediapipe/tasks/python/genai/converter/safetensors_converter.py +580 -0
  492. mediapipe/tasks/python/genai/converter/safetensors_converter_test.py +83 -0
  493. mediapipe/tasks/python/genai/converter/weight_bins_writer.py +120 -0
  494. mediapipe/tasks/python/genai/converter/weight_bins_writer_test.py +95 -0
  495. mediapipe/tasks/python/metadata/__init__.py +13 -0
  496. mediapipe/tasks/python/metadata/flatbuffers_lib/_pywrap_flatbuffers.cpython-310-x86_64-linux-gnu.so +0 -0
  497. mediapipe/tasks/python/metadata/metadata.py +928 -0
  498. mediapipe/tasks/python/metadata/metadata_displayer_cli.py +34 -0
  499. mediapipe/tasks/python/metadata/metadata_writers/__init__.py +13 -0
  500. mediapipe/tasks/python/metadata/metadata_writers/face_stylizer.py +138 -0
  501. mediapipe/tasks/python/metadata/metadata_writers/image_classifier.py +71 -0
  502. mediapipe/tasks/python/metadata/metadata_writers/image_segmenter.py +170 -0
  503. mediapipe/tasks/python/metadata/metadata_writers/metadata_info.py +1166 -0
  504. mediapipe/tasks/python/metadata/metadata_writers/metadata_writer.py +845 -0
  505. mediapipe/tasks/python/metadata/metadata_writers/model_asset_bundle_utils.py +71 -0
  506. mediapipe/tasks/python/metadata/metadata_writers/object_detector.py +331 -0
  507. mediapipe/tasks/python/metadata/metadata_writers/text_classifier.py +119 -0
  508. mediapipe/tasks/python/metadata/metadata_writers/writer_utils.py +91 -0
  509. mediapipe/tasks/python/test/__init__.py +13 -0
  510. mediapipe/tasks/python/test/audio/__init__.py +13 -0
  511. mediapipe/tasks/python/test/audio/audio_classifier_test.py +387 -0
  512. mediapipe/tasks/python/test/audio/audio_embedder_test.py +297 -0
  513. mediapipe/tasks/python/test/test_utils.py +196 -0
  514. mediapipe/tasks/python/test/text/__init__.py +13 -0
  515. mediapipe/tasks/python/test/text/language_detector_test.py +228 -0
  516. mediapipe/tasks/python/test/text/text_classifier_test.py +235 -0
  517. mediapipe/tasks/python/test/text/text_embedder_test.py +326 -0
  518. mediapipe/tasks/python/test/vision/__init__.py +13 -0
  519. mediapipe/tasks/python/test/vision/face_aligner_test.py +190 -0
  520. mediapipe/tasks/python/test/vision/face_detector_test.py +523 -0
  521. mediapipe/tasks/python/test/vision/face_landmarker_test.py +565 -0
  522. mediapipe/tasks/python/test/vision/face_stylizer_test.py +191 -0
  523. mediapipe/tasks/python/test/vision/hand_landmarker_test.py +437 -0
  524. mediapipe/tasks/python/test/vision/holistic_landmarker_test.py +544 -0
  525. mediapipe/tasks/python/test/vision/image_classifier_test.py +657 -0
  526. mediapipe/tasks/python/test/vision/image_embedder_test.py +423 -0
  527. mediapipe/tasks/python/test/vision/image_segmenter_test.py +512 -0
  528. mediapipe/tasks/python/test/vision/interactive_segmenter_test.py +341 -0
  529. mediapipe/tasks/python/test/vision/object_detector_test.py +493 -0
  530. mediapipe/tasks/python/test/vision/pose_landmarker_test.py +518 -0
  531. mediapipe/tasks/python/text/__init__.py +35 -0
  532. mediapipe/tasks/python/text/core/__init__.py +16 -0
  533. mediapipe/tasks/python/text/core/base_text_task_api.py +54 -0
  534. mediapipe/tasks/python/text/language_detector.py +220 -0
  535. mediapipe/tasks/python/text/text_classifier.py +187 -0
  536. mediapipe/tasks/python/text/text_embedder.py +188 -0
  537. mediapipe/tasks/python/vision/__init__.py +90 -0
  538. mediapipe/tasks/python/vision/core/__init__.py +14 -0
  539. mediapipe/tasks/python/vision/core/base_vision_task_api.py +226 -0
  540. mediapipe/tasks/python/vision/core/image_processing_options.py +39 -0
  541. mediapipe/tasks/python/vision/core/vision_task_running_mode.py +31 -0
  542. mediapipe/tasks/python/vision/face_aligner.py +158 -0
  543. mediapipe/tasks/python/vision/face_detector.py +332 -0
  544. mediapipe/tasks/python/vision/face_landmarker.py +3244 -0
  545. mediapipe/tasks/python/vision/face_stylizer.py +158 -0
  546. mediapipe/tasks/python/vision/gesture_recognizer.py +480 -0
  547. mediapipe/tasks/python/vision/hand_landmarker.py +504 -0
  548. mediapipe/tasks/python/vision/holistic_landmarker.py +576 -0
  549. mediapipe/tasks/python/vision/image_classifier.py +358 -0
  550. mediapipe/tasks/python/vision/image_embedder.py +362 -0
  551. mediapipe/tasks/python/vision/image_segmenter.py +433 -0
  552. mediapipe/tasks/python/vision/interactive_segmenter.py +285 -0
  553. mediapipe/tasks/python/vision/object_detector.py +389 -0
  554. mediapipe/tasks/python/vision/pose_landmarker.py +455 -0
  555. mediapipe/util/__init__.py +0 -0
  556. mediapipe/util/analytics/__init__.py +0 -0
  557. mediapipe/util/analytics/mediapipe_log_extension_pb2.py +44 -0
  558. mediapipe/util/analytics/mediapipe_logging_enums_pb2.py +37 -0
  559. mediapipe/util/audio_decoder_pb2.py +33 -0
  560. mediapipe/util/color_pb2.py +33 -0
  561. mediapipe/util/label_map_pb2.py +27 -0
  562. mediapipe/util/render_data_pb2.py +58 -0
  563. mediapipe/util/sequence/__init__.py +14 -0
  564. mediapipe/util/sequence/media_sequence.py +716 -0
  565. mediapipe/util/sequence/media_sequence_test.py +290 -0
  566. mediapipe/util/sequence/media_sequence_util.py +800 -0
  567. mediapipe/util/sequence/media_sequence_util_test.py +389 -0
  568. mediapipe/util/tracking/__init__.py +0 -0
  569. mediapipe/util/tracking/box_detector_pb2.py +39 -0
  570. mediapipe/util/tracking/box_tracker_pb2.py +32 -0
  571. mediapipe/util/tracking/camera_motion_pb2.py +31 -0
  572. mediapipe/util/tracking/flow_packager_pb2.py +60 -0
  573. mediapipe/util/tracking/frame_selection_pb2.py +35 -0
  574. mediapipe/util/tracking/frame_selection_solution_evaluator_pb2.py +28 -0
  575. mediapipe/util/tracking/motion_analysis_pb2.py +35 -0
  576. mediapipe/util/tracking/motion_estimation_pb2.py +66 -0
  577. mediapipe/util/tracking/motion_models_pb2.py +42 -0
  578. mediapipe/util/tracking/motion_saliency_pb2.py +26 -0
  579. mediapipe/util/tracking/push_pull_filtering_pb2.py +26 -0
  580. mediapipe/util/tracking/region_flow_computation_pb2.py +59 -0
  581. mediapipe/util/tracking/region_flow_pb2.py +49 -0
  582. mediapipe/util/tracking/tone_estimation_pb2.py +45 -0
  583. mediapipe/util/tracking/tone_models_pb2.py +32 -0
  584. mediapipe/util/tracking/tracked_detection_manager_config_pb2.py +26 -0
  585. mediapipe/util/tracking/tracking_pb2.py +73 -0
  586. mediapipe_nightly-0.10.21.post20250114.dist-info/LICENSE +218 -0
  587. mediapipe_nightly-0.10.21.post20250114.dist-info/METADATA +199 -0
  588. mediapipe_nightly-0.10.21.post20250114.dist-info/RECORD +593 -0
  589. mediapipe_nightly-0.10.21.post20250114.dist-info/WHEEL +5 -0
  590. mediapipe_nightly-0.10.21.post20250114.dist-info/top_level.txt +4 -0
  591. mediapipe_nightly.libs/libEGL-48f73270.so.1.1.0 +0 -0
  592. mediapipe_nightly.libs/libGLESv2-ed5eda4f.so.2.1.0 +0 -0
  593. mediapipe_nightly.libs/libGLdispatch-64b28464.so.0.0.0 +0 -0
@@ -0,0 +1,500 @@
1
+ # Copyright 2021 The MediaPipe Authors.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ """MediaPipe FaceMesh connections."""
15
+
16
+ FACEMESH_LIPS = frozenset([(61, 146), (146, 91), (91, 181), (181, 84), (84, 17),
17
+ (17, 314), (314, 405), (405, 321), (321, 375),
18
+ (375, 291), (61, 185), (185, 40), (40, 39), (39, 37),
19
+ (37, 0), (0, 267),
20
+ (267, 269), (269, 270), (270, 409), (409, 291),
21
+ (78, 95), (95, 88), (88, 178), (178, 87), (87, 14),
22
+ (14, 317), (317, 402), (402, 318), (318, 324),
23
+ (324, 308), (78, 191), (191, 80), (80, 81), (81, 82),
24
+ (82, 13), (13, 312), (312, 311), (311, 310),
25
+ (310, 415), (415, 308)])
26
+
27
+ FACEMESH_LEFT_EYE = frozenset([(263, 249), (249, 390), (390, 373), (373, 374),
28
+ (374, 380), (380, 381), (381, 382), (382, 362),
29
+ (263, 466), (466, 388), (388, 387), (387, 386),
30
+ (386, 385), (385, 384), (384, 398), (398, 362)])
31
+
32
+ FACEMESH_LEFT_IRIS = frozenset([(474, 475), (475, 476), (476, 477),
33
+ (477, 474)])
34
+
35
+ FACEMESH_LEFT_EYEBROW = frozenset([(276, 283), (283, 282), (282, 295),
36
+ (295, 285), (300, 293), (293, 334),
37
+ (334, 296), (296, 336)])
38
+
39
+ FACEMESH_RIGHT_EYE = frozenset([(33, 7), (7, 163), (163, 144), (144, 145),
40
+ (145, 153), (153, 154), (154, 155), (155, 133),
41
+ (33, 246), (246, 161), (161, 160), (160, 159),
42
+ (159, 158), (158, 157), (157, 173), (173, 133)])
43
+
44
+ FACEMESH_RIGHT_EYEBROW = frozenset([(46, 53), (53, 52), (52, 65), (65, 55),
45
+ (70, 63), (63, 105), (105, 66), (66, 107)])
46
+
47
+ FACEMESH_RIGHT_IRIS = frozenset([(469, 470), (470, 471), (471, 472),
48
+ (472, 469)])
49
+
50
+ FACEMESH_FACE_OVAL = frozenset([(10, 338), (338, 297), (297, 332), (332, 284),
51
+ (284, 251), (251, 389), (389, 356), (356, 454),
52
+ (454, 323), (323, 361), (361, 288), (288, 397),
53
+ (397, 365), (365, 379), (379, 378), (378, 400),
54
+ (400, 377), (377, 152), (152, 148), (148, 176),
55
+ (176, 149), (149, 150), (150, 136), (136, 172),
56
+ (172, 58), (58, 132), (132, 93), (93, 234),
57
+ (234, 127), (127, 162), (162, 21), (21, 54),
58
+ (54, 103), (103, 67), (67, 109), (109, 10)])
59
+
60
+ FACEMESH_NOSE = frozenset([(168, 6), (6, 197), (197, 195), (195, 5),
61
+ (5, 4), (4, 1), (1, 19), (19, 94), (94, 2), (98, 97),
62
+ (97, 2), (2, 326), (326, 327), (327, 294),
63
+ (294, 278), (278, 344), (344, 440), (440, 275),
64
+ (275, 4), (4, 45), (45, 220), (220, 115), (115, 48),
65
+ (48, 64), (64, 98)])
66
+
67
+ FACEMESH_CONTOURS = frozenset().union(*[
68
+ FACEMESH_LIPS, FACEMESH_LEFT_EYE, FACEMESH_LEFT_EYEBROW, FACEMESH_RIGHT_EYE,
69
+ FACEMESH_RIGHT_EYEBROW, FACEMESH_FACE_OVAL
70
+ ])
71
+
72
+ FACEMESH_IRISES = frozenset().union(*[FACEMESH_LEFT_IRIS, FACEMESH_RIGHT_IRIS])
73
+
74
+ FACEMESH_TESSELATION = frozenset([
75
+ (127, 34), (34, 139), (139, 127), (11, 0), (0, 37), (37, 11),
76
+ (232, 231), (231, 120), (120, 232), (72, 37), (37, 39), (39, 72),
77
+ (128, 121), (121, 47), (47, 128), (232, 121), (121, 128), (128, 232),
78
+ (104, 69), (69, 67), (67, 104), (175, 171), (171, 148), (148, 175),
79
+ (118, 50), (50, 101), (101, 118), (73, 39), (39, 40), (40, 73),
80
+ (9, 151), (151, 108), (108, 9), (48, 115), (115, 131), (131, 48),
81
+ (194, 204), (204, 211), (211, 194), (74, 40), (40, 185), (185, 74),
82
+ (80, 42), (42, 183), (183, 80), (40, 92), (92, 186), (186, 40),
83
+ (230, 229), (229, 118), (118, 230), (202, 212), (212, 214), (214, 202),
84
+ (83, 18), (18, 17), (17, 83), (76, 61), (61, 146), (146, 76),
85
+ (160, 29), (29, 30), (30, 160), (56, 157), (157, 173), (173, 56),
86
+ (106, 204), (204, 194), (194, 106), (135, 214), (214, 192), (192, 135),
87
+ (203, 165), (165, 98), (98, 203), (21, 71), (71, 68), (68, 21),
88
+ (51, 45), (45, 4), (4, 51), (144, 24), (24, 23), (23, 144),
89
+ (77, 146), (146, 91), (91, 77), (205, 50), (50, 187), (187, 205),
90
+ (201, 200), (200, 18), (18, 201), (91, 106), (106, 182), (182, 91),
91
+ (90, 91), (91, 181), (181, 90), (85, 84), (84, 17), (17, 85),
92
+ (206, 203), (203, 36), (36, 206), (148, 171), (171, 140), (140, 148),
93
+ (92, 40), (40, 39), (39, 92), (193, 189), (189, 244), (244, 193),
94
+ (159, 158), (158, 28), (28, 159), (247, 246), (246, 161), (161, 247),
95
+ (236, 3), (3, 196), (196, 236), (54, 68), (68, 104), (104, 54),
96
+ (193, 168), (168, 8), (8, 193), (117, 228), (228, 31), (31, 117),
97
+ (189, 193), (193, 55), (55, 189), (98, 97), (97, 99), (99, 98),
98
+ (126, 47), (47, 100), (100, 126), (166, 79), (79, 218), (218, 166),
99
+ (155, 154), (154, 26), (26, 155), (209, 49), (49, 131), (131, 209),
100
+ (135, 136), (136, 150), (150, 135), (47, 126), (126, 217), (217, 47),
101
+ (223, 52), (52, 53), (53, 223), (45, 51), (51, 134), (134, 45),
102
+ (211, 170), (170, 140), (140, 211), (67, 69), (69, 108), (108, 67),
103
+ (43, 106), (106, 91), (91, 43), (230, 119), (119, 120), (120, 230),
104
+ (226, 130), (130, 247), (247, 226), (63, 53), (53, 52), (52, 63),
105
+ (238, 20), (20, 242), (242, 238), (46, 70), (70, 156), (156, 46),
106
+ (78, 62), (62, 96), (96, 78), (46, 53), (53, 63), (63, 46),
107
+ (143, 34), (34, 227), (227, 143), (123, 117), (117, 111), (111, 123),
108
+ (44, 125), (125, 19), (19, 44), (236, 134), (134, 51), (51, 236),
109
+ (216, 206), (206, 205), (205, 216), (154, 153), (153, 22), (22, 154),
110
+ (39, 37), (37, 167), (167, 39), (200, 201), (201, 208), (208, 200),
111
+ (36, 142), (142, 100), (100, 36), (57, 212), (212, 202), (202, 57),
112
+ (20, 60), (60, 99), (99, 20), (28, 158), (158, 157), (157, 28),
113
+ (35, 226), (226, 113), (113, 35), (160, 159), (159, 27), (27, 160),
114
+ (204, 202), (202, 210), (210, 204), (113, 225), (225, 46), (46, 113),
115
+ (43, 202), (202, 204), (204, 43), (62, 76), (76, 77), (77, 62),
116
+ (137, 123), (123, 116), (116, 137), (41, 38), (38, 72), (72, 41),
117
+ (203, 129), (129, 142), (142, 203), (64, 98), (98, 240), (240, 64),
118
+ (49, 102), (102, 64), (64, 49), (41, 73), (73, 74), (74, 41),
119
+ (212, 216), (216, 207), (207, 212), (42, 74), (74, 184), (184, 42),
120
+ (169, 170), (170, 211), (211, 169), (170, 149), (149, 176), (176, 170),
121
+ (105, 66), (66, 69), (69, 105), (122, 6), (6, 168), (168, 122),
122
+ (123, 147), (147, 187), (187, 123), (96, 77), (77, 90), (90, 96),
123
+ (65, 55), (55, 107), (107, 65), (89, 90), (90, 180), (180, 89),
124
+ (101, 100), (100, 120), (120, 101), (63, 105), (105, 104), (104, 63),
125
+ (93, 137), (137, 227), (227, 93), (15, 86), (86, 85), (85, 15),
126
+ (129, 102), (102, 49), (49, 129), (14, 87), (87, 86), (86, 14),
127
+ (55, 8), (8, 9), (9, 55), (100, 47), (47, 121), (121, 100),
128
+ (145, 23), (23, 22), (22, 145), (88, 89), (89, 179), (179, 88),
129
+ (6, 122), (122, 196), (196, 6), (88, 95), (95, 96), (96, 88),
130
+ (138, 172), (172, 136), (136, 138), (215, 58), (58, 172), (172, 215),
131
+ (115, 48), (48, 219), (219, 115), (42, 80), (80, 81), (81, 42),
132
+ (195, 3), (3, 51), (51, 195), (43, 146), (146, 61), (61, 43),
133
+ (171, 175), (175, 199), (199, 171), (81, 82), (82, 38), (38, 81),
134
+ (53, 46), (46, 225), (225, 53), (144, 163), (163, 110), (110, 144),
135
+ (52, 65), (65, 66), (66, 52), (229, 228), (228, 117), (117, 229),
136
+ (34, 127), (127, 234), (234, 34), (107, 108), (108, 69), (69, 107),
137
+ (109, 108), (108, 151), (151, 109), (48, 64), (64, 235), (235, 48),
138
+ (62, 78), (78, 191), (191, 62), (129, 209), (209, 126), (126, 129),
139
+ (111, 35), (35, 143), (143, 111), (117, 123), (123, 50), (50, 117),
140
+ (222, 65), (65, 52), (52, 222), (19, 125), (125, 141), (141, 19),
141
+ (221, 55), (55, 65), (65, 221), (3, 195), (195, 197), (197, 3),
142
+ (25, 7), (7, 33), (33, 25), (220, 237), (237, 44), (44, 220),
143
+ (70, 71), (71, 139), (139, 70), (122, 193), (193, 245), (245, 122),
144
+ (247, 130), (130, 33), (33, 247), (71, 21), (21, 162), (162, 71),
145
+ (170, 169), (169, 150), (150, 170), (188, 174), (174, 196), (196, 188),
146
+ (216, 186), (186, 92), (92, 216), (2, 97), (97, 167), (167, 2),
147
+ (141, 125), (125, 241), (241, 141), (164, 167), (167, 37), (37, 164),
148
+ (72, 38), (38, 12), (12, 72), (38, 82), (82, 13), (13, 38),
149
+ (63, 68), (68, 71), (71, 63), (226, 35), (35, 111), (111, 226),
150
+ (101, 50), (50, 205), (205, 101), (206, 92), (92, 165), (165, 206),
151
+ (209, 198), (198, 217), (217, 209), (165, 167), (167, 97), (97, 165),
152
+ (220, 115), (115, 218), (218, 220), (133, 112), (112, 243), (243, 133),
153
+ (239, 238), (238, 241), (241, 239), (214, 135), (135, 169), (169, 214),
154
+ (190, 173), (173, 133), (133, 190), (171, 208), (208, 32), (32, 171),
155
+ (125, 44), (44, 237), (237, 125), (86, 87), (87, 178), (178, 86),
156
+ (85, 86), (86, 179), (179, 85), (84, 85), (85, 180), (180, 84),
157
+ (83, 84), (84, 181), (181, 83), (201, 83), (83, 182), (182, 201),
158
+ (137, 93), (93, 132), (132, 137), (76, 62), (62, 183), (183, 76),
159
+ (61, 76), (76, 184), (184, 61), (57, 61), (61, 185), (185, 57),
160
+ (212, 57), (57, 186), (186, 212), (214, 207), (207, 187), (187, 214),
161
+ (34, 143), (143, 156), (156, 34), (79, 239), (239, 237), (237, 79),
162
+ (123, 137), (137, 177), (177, 123), (44, 1), (1, 4), (4, 44),
163
+ (201, 194), (194, 32), (32, 201), (64, 102), (102, 129), (129, 64),
164
+ (213, 215), (215, 138), (138, 213), (59, 166), (166, 219), (219, 59),
165
+ (242, 99), (99, 97), (97, 242), (2, 94), (94, 141), (141, 2),
166
+ (75, 59), (59, 235), (235, 75), (24, 110), (110, 228), (228, 24),
167
+ (25, 130), (130, 226), (226, 25), (23, 24), (24, 229), (229, 23),
168
+ (22, 23), (23, 230), (230, 22), (26, 22), (22, 231), (231, 26),
169
+ (112, 26), (26, 232), (232, 112), (189, 190), (190, 243), (243, 189),
170
+ (221, 56), (56, 190), (190, 221), (28, 56), (56, 221), (221, 28),
171
+ (27, 28), (28, 222), (222, 27), (29, 27), (27, 223), (223, 29),
172
+ (30, 29), (29, 224), (224, 30), (247, 30), (30, 225), (225, 247),
173
+ (238, 79), (79, 20), (20, 238), (166, 59), (59, 75), (75, 166),
174
+ (60, 75), (75, 240), (240, 60), (147, 177), (177, 215), (215, 147),
175
+ (20, 79), (79, 166), (166, 20), (187, 147), (147, 213), (213, 187),
176
+ (112, 233), (233, 244), (244, 112), (233, 128), (128, 245), (245, 233),
177
+ (128, 114), (114, 188), (188, 128), (114, 217), (217, 174), (174, 114),
178
+ (131, 115), (115, 220), (220, 131), (217, 198), (198, 236), (236, 217),
179
+ (198, 131), (131, 134), (134, 198), (177, 132), (132, 58), (58, 177),
180
+ (143, 35), (35, 124), (124, 143), (110, 163), (163, 7), (7, 110),
181
+ (228, 110), (110, 25), (25, 228), (356, 389), (389, 368), (368, 356),
182
+ (11, 302), (302, 267), (267, 11), (452, 350), (350, 349), (349, 452),
183
+ (302, 303), (303, 269), (269, 302), (357, 343), (343, 277), (277, 357),
184
+ (452, 453), (453, 357), (357, 452), (333, 332), (332, 297), (297, 333),
185
+ (175, 152), (152, 377), (377, 175), (347, 348), (348, 330), (330, 347),
186
+ (303, 304), (304, 270), (270, 303), (9, 336), (336, 337), (337, 9),
187
+ (278, 279), (279, 360), (360, 278), (418, 262), (262, 431), (431, 418),
188
+ (304, 408), (408, 409), (409, 304), (310, 415), (415, 407), (407, 310),
189
+ (270, 409), (409, 410), (410, 270), (450, 348), (348, 347), (347, 450),
190
+ (422, 430), (430, 434), (434, 422), (313, 314), (314, 17), (17, 313),
191
+ (306, 307), (307, 375), (375, 306), (387, 388), (388, 260), (260, 387),
192
+ (286, 414), (414, 398), (398, 286), (335, 406), (406, 418), (418, 335),
193
+ (364, 367), (367, 416), (416, 364), (423, 358), (358, 327), (327, 423),
194
+ (251, 284), (284, 298), (298, 251), (281, 5), (5, 4), (4, 281),
195
+ (373, 374), (374, 253), (253, 373), (307, 320), (320, 321), (321, 307),
196
+ (425, 427), (427, 411), (411, 425), (421, 313), (313, 18), (18, 421),
197
+ (321, 405), (405, 406), (406, 321), (320, 404), (404, 405), (405, 320),
198
+ (315, 16), (16, 17), (17, 315), (426, 425), (425, 266), (266, 426),
199
+ (377, 400), (400, 369), (369, 377), (322, 391), (391, 269), (269, 322),
200
+ (417, 465), (465, 464), (464, 417), (386, 257), (257, 258), (258, 386),
201
+ (466, 260), (260, 388), (388, 466), (456, 399), (399, 419), (419, 456),
202
+ (284, 332), (332, 333), (333, 284), (417, 285), (285, 8), (8, 417),
203
+ (346, 340), (340, 261), (261, 346), (413, 441), (441, 285), (285, 413),
204
+ (327, 460), (460, 328), (328, 327), (355, 371), (371, 329), (329, 355),
205
+ (392, 439), (439, 438), (438, 392), (382, 341), (341, 256), (256, 382),
206
+ (429, 420), (420, 360), (360, 429), (364, 394), (394, 379), (379, 364),
207
+ (277, 343), (343, 437), (437, 277), (443, 444), (444, 283), (283, 443),
208
+ (275, 440), (440, 363), (363, 275), (431, 262), (262, 369), (369, 431),
209
+ (297, 338), (338, 337), (337, 297), (273, 375), (375, 321), (321, 273),
210
+ (450, 451), (451, 349), (349, 450), (446, 342), (342, 467), (467, 446),
211
+ (293, 334), (334, 282), (282, 293), (458, 461), (461, 462), (462, 458),
212
+ (276, 353), (353, 383), (383, 276), (308, 324), (324, 325), (325, 308),
213
+ (276, 300), (300, 293), (293, 276), (372, 345), (345, 447), (447, 372),
214
+ (352, 345), (345, 340), (340, 352), (274, 1), (1, 19), (19, 274),
215
+ (456, 248), (248, 281), (281, 456), (436, 427), (427, 425), (425, 436),
216
+ (381, 256), (256, 252), (252, 381), (269, 391), (391, 393), (393, 269),
217
+ (200, 199), (199, 428), (428, 200), (266, 330), (330, 329), (329, 266),
218
+ (287, 273), (273, 422), (422, 287), (250, 462), (462, 328), (328, 250),
219
+ (258, 286), (286, 384), (384, 258), (265, 353), (353, 342), (342, 265),
220
+ (387, 259), (259, 257), (257, 387), (424, 431), (431, 430), (430, 424),
221
+ (342, 353), (353, 276), (276, 342), (273, 335), (335, 424), (424, 273),
222
+ (292, 325), (325, 307), (307, 292), (366, 447), (447, 345), (345, 366),
223
+ (271, 303), (303, 302), (302, 271), (423, 266), (266, 371), (371, 423),
224
+ (294, 455), (455, 460), (460, 294), (279, 278), (278, 294), (294, 279),
225
+ (271, 272), (272, 304), (304, 271), (432, 434), (434, 427), (427, 432),
226
+ (272, 407), (407, 408), (408, 272), (394, 430), (430, 431), (431, 394),
227
+ (395, 369), (369, 400), (400, 395), (334, 333), (333, 299), (299, 334),
228
+ (351, 417), (417, 168), (168, 351), (352, 280), (280, 411), (411, 352),
229
+ (325, 319), (319, 320), (320, 325), (295, 296), (296, 336), (336, 295),
230
+ (319, 403), (403, 404), (404, 319), (330, 348), (348, 349), (349, 330),
231
+ (293, 298), (298, 333), (333, 293), (323, 454), (454, 447), (447, 323),
232
+ (15, 16), (16, 315), (315, 15), (358, 429), (429, 279), (279, 358),
233
+ (14, 15), (15, 316), (316, 14), (285, 336), (336, 9), (9, 285),
234
+ (329, 349), (349, 350), (350, 329), (374, 380), (380, 252), (252, 374),
235
+ (318, 402), (402, 403), (403, 318), (6, 197), (197, 419), (419, 6),
236
+ (318, 319), (319, 325), (325, 318), (367, 364), (364, 365), (365, 367),
237
+ (435, 367), (367, 397), (397, 435), (344, 438), (438, 439), (439, 344),
238
+ (272, 271), (271, 311), (311, 272), (195, 5), (5, 281), (281, 195),
239
+ (273, 287), (287, 291), (291, 273), (396, 428), (428, 199), (199, 396),
240
+ (311, 271), (271, 268), (268, 311), (283, 444), (444, 445), (445, 283),
241
+ (373, 254), (254, 339), (339, 373), (282, 334), (334, 296), (296, 282),
242
+ (449, 347), (347, 346), (346, 449), (264, 447), (447, 454), (454, 264),
243
+ (336, 296), (296, 299), (299, 336), (338, 10), (10, 151), (151, 338),
244
+ (278, 439), (439, 455), (455, 278), (292, 407), (407, 415), (415, 292),
245
+ (358, 371), (371, 355), (355, 358), (340, 345), (345, 372), (372, 340),
246
+ (346, 347), (347, 280), (280, 346), (442, 443), (443, 282), (282, 442),
247
+ (19, 94), (94, 370), (370, 19), (441, 442), (442, 295), (295, 441),
248
+ (248, 419), (419, 197), (197, 248), (263, 255), (255, 359), (359, 263),
249
+ (440, 275), (275, 274), (274, 440), (300, 383), (383, 368), (368, 300),
250
+ (351, 412), (412, 465), (465, 351), (263, 467), (467, 466), (466, 263),
251
+ (301, 368), (368, 389), (389, 301), (395, 378), (378, 379), (379, 395),
252
+ (412, 351), (351, 419), (419, 412), (436, 426), (426, 322), (322, 436),
253
+ (2, 164), (164, 393), (393, 2), (370, 462), (462, 461), (461, 370),
254
+ (164, 0), (0, 267), (267, 164), (302, 11), (11, 12), (12, 302),
255
+ (268, 12), (12, 13), (13, 268), (293, 300), (300, 301), (301, 293),
256
+ (446, 261), (261, 340), (340, 446), (330, 266), (266, 425), (425, 330),
257
+ (426, 423), (423, 391), (391, 426), (429, 355), (355, 437), (437, 429),
258
+ (391, 327), (327, 326), (326, 391), (440, 457), (457, 438), (438, 440),
259
+ (341, 382), (382, 362), (362, 341), (459, 457), (457, 461), (461, 459),
260
+ (434, 430), (430, 394), (394, 434), (414, 463), (463, 362), (362, 414),
261
+ (396, 369), (369, 262), (262, 396), (354, 461), (461, 457), (457, 354),
262
+ (316, 403), (403, 402), (402, 316), (315, 404), (404, 403), (403, 315),
263
+ (314, 405), (405, 404), (404, 314), (313, 406), (406, 405), (405, 313),
264
+ (421, 418), (418, 406), (406, 421), (366, 401), (401, 361), (361, 366),
265
+ (306, 408), (408, 407), (407, 306), (291, 409), (409, 408), (408, 291),
266
+ (287, 410), (410, 409), (409, 287), (432, 436), (436, 410), (410, 432),
267
+ (434, 416), (416, 411), (411, 434), (264, 368), (368, 383), (383, 264),
268
+ (309, 438), (438, 457), (457, 309), (352, 376), (376, 401), (401, 352),
269
+ (274, 275), (275, 4), (4, 274), (421, 428), (428, 262), (262, 421),
270
+ (294, 327), (327, 358), (358, 294), (433, 416), (416, 367), (367, 433),
271
+ (289, 455), (455, 439), (439, 289), (462, 370), (370, 326), (326, 462),
272
+ (2, 326), (326, 370), (370, 2), (305, 460), (460, 455), (455, 305),
273
+ (254, 449), (449, 448), (448, 254), (255, 261), (261, 446), (446, 255),
274
+ (253, 450), (450, 449), (449, 253), (252, 451), (451, 450), (450, 252),
275
+ (256, 452), (452, 451), (451, 256), (341, 453), (453, 452), (452, 341),
276
+ (413, 464), (464, 463), (463, 413), (441, 413), (413, 414), (414, 441),
277
+ (258, 442), (442, 441), (441, 258), (257, 443), (443, 442), (442, 257),
278
+ (259, 444), (444, 443), (443, 259), (260, 445), (445, 444), (444, 260),
279
+ (467, 342), (342, 445), (445, 467), (459, 458), (458, 250), (250, 459),
280
+ (289, 392), (392, 290), (290, 289), (290, 328), (328, 460), (460, 290),
281
+ (376, 433), (433, 435), (435, 376), (250, 290), (290, 392), (392, 250),
282
+ (411, 416), (416, 433), (433, 411), (341, 463), (463, 464), (464, 341),
283
+ (453, 464), (464, 465), (465, 453), (357, 465), (465, 412), (412, 357),
284
+ (343, 412), (412, 399), (399, 343), (360, 363), (363, 440), (440, 360),
285
+ (437, 399), (399, 456), (456, 437), (420, 456), (456, 363), (363, 420),
286
+ (401, 435), (435, 288), (288, 401), (372, 383), (383, 353), (353, 372),
287
+ (339, 255), (255, 249), (249, 339), (448, 261), (261, 255), (255, 448),
288
+ (133, 243), (243, 190), (190, 133), (133, 155), (155, 112), (112, 133),
289
+ (33, 246), (246, 247), (247, 33), (33, 130), (130, 25), (25, 33),
290
+ (398, 384), (384, 286), (286, 398), (362, 398), (398, 414), (414, 362),
291
+ (362, 463), (463, 341), (341, 362), (263, 359), (359, 467), (467, 263),
292
+ (263, 249), (249, 255), (255, 263), (466, 467), (467, 260), (260, 466),
293
+ (75, 60), (60, 166), (166, 75), (238, 239), (239, 79), (79, 238),
294
+ (162, 127), (127, 139), (139, 162), (72, 11), (11, 37), (37, 72),
295
+ (121, 232), (232, 120), (120, 121), (73, 72), (72, 39), (39, 73),
296
+ (114, 128), (128, 47), (47, 114), (233, 232), (232, 128), (128, 233),
297
+ (103, 104), (104, 67), (67, 103), (152, 175), (175, 148), (148, 152),
298
+ (119, 118), (118, 101), (101, 119), (74, 73), (73, 40), (40, 74),
299
+ (107, 9), (9, 108), (108, 107), (49, 48), (48, 131), (131, 49),
300
+ (32, 194), (194, 211), (211, 32), (184, 74), (74, 185), (185, 184),
301
+ (191, 80), (80, 183), (183, 191), (185, 40), (40, 186), (186, 185),
302
+ (119, 230), (230, 118), (118, 119), (210, 202), (202, 214), (214, 210),
303
+ (84, 83), (83, 17), (17, 84), (77, 76), (76, 146), (146, 77),
304
+ (161, 160), (160, 30), (30, 161), (190, 56), (56, 173), (173, 190),
305
+ (182, 106), (106, 194), (194, 182), (138, 135), (135, 192), (192, 138),
306
+ (129, 203), (203, 98), (98, 129), (54, 21), (21, 68), (68, 54),
307
+ (5, 51), (51, 4), (4, 5), (145, 144), (144, 23), (23, 145),
308
+ (90, 77), (77, 91), (91, 90), (207, 205), (205, 187), (187, 207),
309
+ (83, 201), (201, 18), (18, 83), (181, 91), (91, 182), (182, 181),
310
+ (180, 90), (90, 181), (181, 180), (16, 85), (85, 17), (17, 16),
311
+ (205, 206), (206, 36), (36, 205), (176, 148), (148, 140), (140, 176),
312
+ (165, 92), (92, 39), (39, 165), (245, 193), (193, 244), (244, 245),
313
+ (27, 159), (159, 28), (28, 27), (30, 247), (247, 161), (161, 30),
314
+ (174, 236), (236, 196), (196, 174), (103, 54), (54, 104), (104, 103),
315
+ (55, 193), (193, 8), (8, 55), (111, 117), (117, 31), (31, 111),
316
+ (221, 189), (189, 55), (55, 221), (240, 98), (98, 99), (99, 240),
317
+ (142, 126), (126, 100), (100, 142), (219, 166), (166, 218), (218, 219),
318
+ (112, 155), (155, 26), (26, 112), (198, 209), (209, 131), (131, 198),
319
+ (169, 135), (135, 150), (150, 169), (114, 47), (47, 217), (217, 114),
320
+ (224, 223), (223, 53), (53, 224), (220, 45), (45, 134), (134, 220),
321
+ (32, 211), (211, 140), (140, 32), (109, 67), (67, 108), (108, 109),
322
+ (146, 43), (43, 91), (91, 146), (231, 230), (230, 120), (120, 231),
323
+ (113, 226), (226, 247), (247, 113), (105, 63), (63, 52), (52, 105),
324
+ (241, 238), (238, 242), (242, 241), (124, 46), (46, 156), (156, 124),
325
+ (95, 78), (78, 96), (96, 95), (70, 46), (46, 63), (63, 70),
326
+ (116, 143), (143, 227), (227, 116), (116, 123), (123, 111), (111, 116),
327
+ (1, 44), (44, 19), (19, 1), (3, 236), (236, 51), (51, 3),
328
+ (207, 216), (216, 205), (205, 207), (26, 154), (154, 22), (22, 26),
329
+ (165, 39), (39, 167), (167, 165), (199, 200), (200, 208), (208, 199),
330
+ (101, 36), (36, 100), (100, 101), (43, 57), (57, 202), (202, 43),
331
+ (242, 20), (20, 99), (99, 242), (56, 28), (28, 157), (157, 56),
332
+ (124, 35), (35, 113), (113, 124), (29, 160), (160, 27), (27, 29),
333
+ (211, 204), (204, 210), (210, 211), (124, 113), (113, 46), (46, 124),
334
+ (106, 43), (43, 204), (204, 106), (96, 62), (62, 77), (77, 96),
335
+ (227, 137), (137, 116), (116, 227), (73, 41), (41, 72), (72, 73),
336
+ (36, 203), (203, 142), (142, 36), (235, 64), (64, 240), (240, 235),
337
+ (48, 49), (49, 64), (64, 48), (42, 41), (41, 74), (74, 42),
338
+ (214, 212), (212, 207), (207, 214), (183, 42), (42, 184), (184, 183),
339
+ (210, 169), (169, 211), (211, 210), (140, 170), (170, 176), (176, 140),
340
+ (104, 105), (105, 69), (69, 104), (193, 122), (122, 168), (168, 193),
341
+ (50, 123), (123, 187), (187, 50), (89, 96), (96, 90), (90, 89),
342
+ (66, 65), (65, 107), (107, 66), (179, 89), (89, 180), (180, 179),
343
+ (119, 101), (101, 120), (120, 119), (68, 63), (63, 104), (104, 68),
344
+ (234, 93), (93, 227), (227, 234), (16, 15), (15, 85), (85, 16),
345
+ (209, 129), (129, 49), (49, 209), (15, 14), (14, 86), (86, 15),
346
+ (107, 55), (55, 9), (9, 107), (120, 100), (100, 121), (121, 120),
347
+ (153, 145), (145, 22), (22, 153), (178, 88), (88, 179), (179, 178),
348
+ (197, 6), (6, 196), (196, 197), (89, 88), (88, 96), (96, 89),
349
+ (135, 138), (138, 136), (136, 135), (138, 215), (215, 172), (172, 138),
350
+ (218, 115), (115, 219), (219, 218), (41, 42), (42, 81), (81, 41),
351
+ (5, 195), (195, 51), (51, 5), (57, 43), (43, 61), (61, 57),
352
+ (208, 171), (171, 199), (199, 208), (41, 81), (81, 38), (38, 41),
353
+ (224, 53), (53, 225), (225, 224), (24, 144), (144, 110), (110, 24),
354
+ (105, 52), (52, 66), (66, 105), (118, 229), (229, 117), (117, 118),
355
+ (227, 34), (34, 234), (234, 227), (66, 107), (107, 69), (69, 66),
356
+ (10, 109), (109, 151), (151, 10), (219, 48), (48, 235), (235, 219),
357
+ (183, 62), (62, 191), (191, 183), (142, 129), (129, 126), (126, 142),
358
+ (116, 111), (111, 143), (143, 116), (118, 117), (117, 50), (50, 118),
359
+ (223, 222), (222, 52), (52, 223), (94, 19), (19, 141), (141, 94),
360
+ (222, 221), (221, 65), (65, 222), (196, 3), (3, 197), (197, 196),
361
+ (45, 220), (220, 44), (44, 45), (156, 70), (70, 139), (139, 156),
362
+ (188, 122), (122, 245), (245, 188), (139, 71), (71, 162), (162, 139),
363
+ (149, 170), (170, 150), (150, 149), (122, 188), (188, 196), (196, 122),
364
+ (206, 216), (216, 92), (92, 206), (164, 2), (2, 167), (167, 164),
365
+ (242, 141), (141, 241), (241, 242), (0, 164), (164, 37), (37, 0),
366
+ (11, 72), (72, 12), (12, 11), (12, 38), (38, 13), (13, 12),
367
+ (70, 63), (63, 71), (71, 70), (31, 226), (226, 111), (111, 31),
368
+ (36, 101), (101, 205), (205, 36), (203, 206), (206, 165), (165, 203),
369
+ (126, 209), (209, 217), (217, 126), (98, 165), (165, 97), (97, 98),
370
+ (237, 220), (220, 218), (218, 237), (237, 239), (239, 241), (241, 237),
371
+ (210, 214), (214, 169), (169, 210), (140, 171), (171, 32), (32, 140),
372
+ (241, 125), (125, 237), (237, 241), (179, 86), (86, 178), (178, 179),
373
+ (180, 85), (85, 179), (179, 180), (181, 84), (84, 180), (180, 181),
374
+ (182, 83), (83, 181), (181, 182), (194, 201), (201, 182), (182, 194),
375
+ (177, 137), (137, 132), (132, 177), (184, 76), (76, 183), (183, 184),
376
+ (185, 61), (61, 184), (184, 185), (186, 57), (57, 185), (185, 186),
377
+ (216, 212), (212, 186), (186, 216), (192, 214), (214, 187), (187, 192),
378
+ (139, 34), (34, 156), (156, 139), (218, 79), (79, 237), (237, 218),
379
+ (147, 123), (123, 177), (177, 147), (45, 44), (44, 4), (4, 45),
380
+ (208, 201), (201, 32), (32, 208), (98, 64), (64, 129), (129, 98),
381
+ (192, 213), (213, 138), (138, 192), (235, 59), (59, 219), (219, 235),
382
+ (141, 242), (242, 97), (97, 141), (97, 2), (2, 141), (141, 97),
383
+ (240, 75), (75, 235), (235, 240), (229, 24), (24, 228), (228, 229),
384
+ (31, 25), (25, 226), (226, 31), (230, 23), (23, 229), (229, 230),
385
+ (231, 22), (22, 230), (230, 231), (232, 26), (26, 231), (231, 232),
386
+ (233, 112), (112, 232), (232, 233), (244, 189), (189, 243), (243, 244),
387
+ (189, 221), (221, 190), (190, 189), (222, 28), (28, 221), (221, 222),
388
+ (223, 27), (27, 222), (222, 223), (224, 29), (29, 223), (223, 224),
389
+ (225, 30), (30, 224), (224, 225), (113, 247), (247, 225), (225, 113),
390
+ (99, 60), (60, 240), (240, 99), (213, 147), (147, 215), (215, 213),
391
+ (60, 20), (20, 166), (166, 60), (192, 187), (187, 213), (213, 192),
392
+ (243, 112), (112, 244), (244, 243), (244, 233), (233, 245), (245, 244),
393
+ (245, 128), (128, 188), (188, 245), (188, 114), (114, 174), (174, 188),
394
+ (134, 131), (131, 220), (220, 134), (174, 217), (217, 236), (236, 174),
395
+ (236, 198), (198, 134), (134, 236), (215, 177), (177, 58), (58, 215),
396
+ (156, 143), (143, 124), (124, 156), (25, 110), (110, 7), (7, 25),
397
+ (31, 228), (228, 25), (25, 31), (264, 356), (356, 368), (368, 264),
398
+ (0, 11), (11, 267), (267, 0), (451, 452), (452, 349), (349, 451),
399
+ (267, 302), (302, 269), (269, 267), (350, 357), (357, 277), (277, 350),
400
+ (350, 452), (452, 357), (357, 350), (299, 333), (333, 297), (297, 299),
401
+ (396, 175), (175, 377), (377, 396), (280, 347), (347, 330), (330, 280),
402
+ (269, 303), (303, 270), (270, 269), (151, 9), (9, 337), (337, 151),
403
+ (344, 278), (278, 360), (360, 344), (424, 418), (418, 431), (431, 424),
404
+ (270, 304), (304, 409), (409, 270), (272, 310), (310, 407), (407, 272),
405
+ (322, 270), (270, 410), (410, 322), (449, 450), (450, 347), (347, 449),
406
+ (432, 422), (422, 434), (434, 432), (18, 313), (313, 17), (17, 18),
407
+ (291, 306), (306, 375), (375, 291), (259, 387), (387, 260), (260, 259),
408
+ (424, 335), (335, 418), (418, 424), (434, 364), (364, 416), (416, 434),
409
+ (391, 423), (423, 327), (327, 391), (301, 251), (251, 298), (298, 301),
410
+ (275, 281), (281, 4), (4, 275), (254, 373), (373, 253), (253, 254),
411
+ (375, 307), (307, 321), (321, 375), (280, 425), (425, 411), (411, 280),
412
+ (200, 421), (421, 18), (18, 200), (335, 321), (321, 406), (406, 335),
413
+ (321, 320), (320, 405), (405, 321), (314, 315), (315, 17), (17, 314),
414
+ (423, 426), (426, 266), (266, 423), (396, 377), (377, 369), (369, 396),
415
+ (270, 322), (322, 269), (269, 270), (413, 417), (417, 464), (464, 413),
416
+ (385, 386), (386, 258), (258, 385), (248, 456), (456, 419), (419, 248),
417
+ (298, 284), (284, 333), (333, 298), (168, 417), (417, 8), (8, 168),
418
+ (448, 346), (346, 261), (261, 448), (417, 413), (413, 285), (285, 417),
419
+ (326, 327), (327, 328), (328, 326), (277, 355), (355, 329), (329, 277),
420
+ (309, 392), (392, 438), (438, 309), (381, 382), (382, 256), (256, 381),
421
+ (279, 429), (429, 360), (360, 279), (365, 364), (364, 379), (379, 365),
422
+ (355, 277), (277, 437), (437, 355), (282, 443), (443, 283), (283, 282),
423
+ (281, 275), (275, 363), (363, 281), (395, 431), (431, 369), (369, 395),
424
+ (299, 297), (297, 337), (337, 299), (335, 273), (273, 321), (321, 335),
425
+ (348, 450), (450, 349), (349, 348), (359, 446), (446, 467), (467, 359),
426
+ (283, 293), (293, 282), (282, 283), (250, 458), (458, 462), (462, 250),
427
+ (300, 276), (276, 383), (383, 300), (292, 308), (308, 325), (325, 292),
428
+ (283, 276), (276, 293), (293, 283), (264, 372), (372, 447), (447, 264),
429
+ (346, 352), (352, 340), (340, 346), (354, 274), (274, 19), (19, 354),
430
+ (363, 456), (456, 281), (281, 363), (426, 436), (436, 425), (425, 426),
431
+ (380, 381), (381, 252), (252, 380), (267, 269), (269, 393), (393, 267),
432
+ (421, 200), (200, 428), (428, 421), (371, 266), (266, 329), (329, 371),
433
+ (432, 287), (287, 422), (422, 432), (290, 250), (250, 328), (328, 290),
434
+ (385, 258), (258, 384), (384, 385), (446, 265), (265, 342), (342, 446),
435
+ (386, 387), (387, 257), (257, 386), (422, 424), (424, 430), (430, 422),
436
+ (445, 342), (342, 276), (276, 445), (422, 273), (273, 424), (424, 422),
437
+ (306, 292), (292, 307), (307, 306), (352, 366), (366, 345), (345, 352),
438
+ (268, 271), (271, 302), (302, 268), (358, 423), (423, 371), (371, 358),
439
+ (327, 294), (294, 460), (460, 327), (331, 279), (279, 294), (294, 331),
440
+ (303, 271), (271, 304), (304, 303), (436, 432), (432, 427), (427, 436),
441
+ (304, 272), (272, 408), (408, 304), (395, 394), (394, 431), (431, 395),
442
+ (378, 395), (395, 400), (400, 378), (296, 334), (334, 299), (299, 296),
443
+ (6, 351), (351, 168), (168, 6), (376, 352), (352, 411), (411, 376),
444
+ (307, 325), (325, 320), (320, 307), (285, 295), (295, 336), (336, 285),
445
+ (320, 319), (319, 404), (404, 320), (329, 330), (330, 349), (349, 329),
446
+ (334, 293), (293, 333), (333, 334), (366, 323), (323, 447), (447, 366),
447
+ (316, 15), (15, 315), (315, 316), (331, 358), (358, 279), (279, 331),
448
+ (317, 14), (14, 316), (316, 317), (8, 285), (285, 9), (9, 8),
449
+ (277, 329), (329, 350), (350, 277), (253, 374), (374, 252), (252, 253),
450
+ (319, 318), (318, 403), (403, 319), (351, 6), (6, 419), (419, 351),
451
+ (324, 318), (318, 325), (325, 324), (397, 367), (367, 365), (365, 397),
452
+ (288, 435), (435, 397), (397, 288), (278, 344), (344, 439), (439, 278),
453
+ (310, 272), (272, 311), (311, 310), (248, 195), (195, 281), (281, 248),
454
+ (375, 273), (273, 291), (291, 375), (175, 396), (396, 199), (199, 175),
455
+ (312, 311), (311, 268), (268, 312), (276, 283), (283, 445), (445, 276),
456
+ (390, 373), (373, 339), (339, 390), (295, 282), (282, 296), (296, 295),
457
+ (448, 449), (449, 346), (346, 448), (356, 264), (264, 454), (454, 356),
458
+ (337, 336), (336, 299), (299, 337), (337, 338), (338, 151), (151, 337),
459
+ (294, 278), (278, 455), (455, 294), (308, 292), (292, 415), (415, 308),
460
+ (429, 358), (358, 355), (355, 429), (265, 340), (340, 372), (372, 265),
461
+ (352, 346), (346, 280), (280, 352), (295, 442), (442, 282), (282, 295),
462
+ (354, 19), (19, 370), (370, 354), (285, 441), (441, 295), (295, 285),
463
+ (195, 248), (248, 197), (197, 195), (457, 440), (440, 274), (274, 457),
464
+ (301, 300), (300, 368), (368, 301), (417, 351), (351, 465), (465, 417),
465
+ (251, 301), (301, 389), (389, 251), (394, 395), (395, 379), (379, 394),
466
+ (399, 412), (412, 419), (419, 399), (410, 436), (436, 322), (322, 410),
467
+ (326, 2), (2, 393), (393, 326), (354, 370), (370, 461), (461, 354),
468
+ (393, 164), (164, 267), (267, 393), (268, 302), (302, 12), (12, 268),
469
+ (312, 268), (268, 13), (13, 312), (298, 293), (293, 301), (301, 298),
470
+ (265, 446), (446, 340), (340, 265), (280, 330), (330, 425), (425, 280),
471
+ (322, 426), (426, 391), (391, 322), (420, 429), (429, 437), (437, 420),
472
+ (393, 391), (391, 326), (326, 393), (344, 440), (440, 438), (438, 344),
473
+ (458, 459), (459, 461), (461, 458), (364, 434), (434, 394), (394, 364),
474
+ (428, 396), (396, 262), (262, 428), (274, 354), (354, 457), (457, 274),
475
+ (317, 316), (316, 402), (402, 317), (316, 315), (315, 403), (403, 316),
476
+ (315, 314), (314, 404), (404, 315), (314, 313), (313, 405), (405, 314),
477
+ (313, 421), (421, 406), (406, 313), (323, 366), (366, 361), (361, 323),
478
+ (292, 306), (306, 407), (407, 292), (306, 291), (291, 408), (408, 306),
479
+ (291, 287), (287, 409), (409, 291), (287, 432), (432, 410), (410, 287),
480
+ (427, 434), (434, 411), (411, 427), (372, 264), (264, 383), (383, 372),
481
+ (459, 309), (309, 457), (457, 459), (366, 352), (352, 401), (401, 366),
482
+ (1, 274), (274, 4), (4, 1), (418, 421), (421, 262), (262, 418),
483
+ (331, 294), (294, 358), (358, 331), (435, 433), (433, 367), (367, 435),
484
+ (392, 289), (289, 439), (439, 392), (328, 462), (462, 326), (326, 328),
485
+ (94, 2), (2, 370), (370, 94), (289, 305), (305, 455), (455, 289),
486
+ (339, 254), (254, 448), (448, 339), (359, 255), (255, 446), (446, 359),
487
+ (254, 253), (253, 449), (449, 254), (253, 252), (252, 450), (450, 253),
488
+ (252, 256), (256, 451), (451, 252), (256, 341), (341, 452), (452, 256),
489
+ (414, 413), (413, 463), (463, 414), (286, 441), (441, 414), (414, 286),
490
+ (286, 258), (258, 441), (441, 286), (258, 257), (257, 442), (442, 258),
491
+ (257, 259), (259, 443), (443, 257), (259, 260), (260, 444), (444, 259),
492
+ (260, 467), (467, 445), (445, 260), (309, 459), (459, 250), (250, 309),
493
+ (305, 289), (289, 290), (290, 305), (305, 290), (290, 460), (460, 305),
494
+ (401, 376), (376, 435), (435, 401), (309, 250), (250, 392), (392, 309),
495
+ (376, 411), (411, 433), (433, 376), (453, 341), (341, 464), (464, 453),
496
+ (357, 453), (453, 465), (465, 357), (343, 357), (357, 412), (412, 343),
497
+ (437, 343), (343, 399), (399, 437), (344, 360), (360, 440), (440, 344),
498
+ (420, 437), (437, 456), (456, 420), (360, 420), (420, 363), (363, 360),
499
+ (361, 401), (401, 288), (288, 361), (265, 372), (372, 353), (353, 265),
500
+ (390, 339), (339, 249), (249, 390), (339, 448), (448, 255), (255, 339)])