/foundation/barrierfree/accessibility/services/aams/test/unittest/ |
H A D | accessibility_mouse_key_test.cpp | 36 void OnKeyEventPresss(MMI::KeyEvent &event, const int32_t keycode); 65 void AccessibilityMouseKeyUnitTest::OnKeyEventPresss(MMI::KeyEvent &event, const int32_t keycode) in OnKeyEventPresss() 69 MMI::KeyEvent::KeyItem item; in OnKeyEventPresss() 89 std::shared_ptr<MMI::PointerEvent> event = MMI::PointerEvent::Create(); in HWTEST_F() 94 event->SetSourceType(MMI::PointerEvent::SOURCE_TYPE_MOUSE); in HWTEST_F() 95 event->SetPointerAction(MMI::PointerEvent::POINTER_ACTION_MOVE); in HWTEST_F() 96 MMI::PointerEvent::PointerItem item; in HWTEST_F() 115 std::shared_ptr<MMI::PointerEvent> event = MMI in HWTEST_F() [all...] |
H A D | accessibility_gesture_recognizer_test.cpp | 37 void OnPointerEventPresss(MMI::KeyEvent &event, const int32_t keycode); 66 void AccessAccessibilityGestureRecognizerTest::OnPointerEventPresss(MMI::KeyEvent &event, const int32_t keycode) in OnPointerEventPresss() 70 MMI::KeyEvent::KeyItem item; in OnPointerEventPresss() 89 std::shared_ptr<MMI::PointerEvent> event = MMI::PointerEvent::Create(); in HWTEST_F() 94 event->SetSourceType(MMI::PointerEvent::SOURCE_TYPE_MOUSE); in HWTEST_F() 95 event->SetPointerAction(MMI::PointerEvent::POINTER_ACTION_MOVE); in HWTEST_F() 96 MMI::PointerEvent::PointerItem item; in HWTEST_F() 115 std::shared_ptr<MMI::PointerEvent> event = MMI in HWTEST_F() [all...] |
H A D | accessibility_zoom_gesture_test.cpp | 42 std::shared_ptr<MMI::PointerEvent> CreatePointerEvent(int32_t sourceType, int32_t pointerAction); 72 std::shared_ptr<MMI::PointerEvent> AccessibilityZoomGestureUnitTest::CreatePointerEvent(int32_t sourceType, in CreatePointerEvent() 75 std::shared_ptr<MMI::PointerEvent> event = MMI::PointerEvent::Create(); in CreatePointerEvent() 91 std::shared_ptr<MMI::PointerEvent> eventDown = CreatePointerEvent(MMI::PointerEvent::SOURCE_TYPE_TOUCHSCREEN, in TripleTaps() 92 MMI::PointerEvent::POINTER_ACTION_DOWN); in TripleTaps() 96 MMI::PointerEvent::PointerItem item; in TripleTaps() 100 std::shared_ptr<MMI::PointerEvent> eventUp = CreatePointerEvent(MMI in TripleTaps() [all...] |
H A D | accessibility_screen_touch_test.cpp | 64 std::shared_ptr<MMI::PointerEvent> SetPointerEvent(uint32_t time, uint32_t action); 65 std::shared_ptr<MMI::PointerEvent> SetPointerEvent(uint32_t time, uint32_t action, 66 std::vector<MMI::PointerEvent::PointerItem> &points, int32_t pointerId); 107 std::shared_ptr<MMI::PointerEvent> AccessibilityScreenTouchUnitTest::SetPointerEvent(uint32_t time, uint32_t action) in SetPointerEvent() 109 std::shared_ptr<MMI::PointerEvent> event = MMI::PointerEvent::Create(); in SetPointerEvent() 110 event->SetSourceType(MMI::PointerEvent::SOURCE_TYPE_TOUCHSCREEN); in SetPointerEvent() 113 MMI::PointerEvent::PointerItem item; in SetPointerEvent() 120 std::shared_ptr<MMI::PointerEvent> AccessibilityScreenTouchUnitTest::SetPointerEvent(uint32_t time, uint32_t action, in SetPointerEvent() 121 std::vector<MMI in SetPointerEvent() [all...] |
H A D | accessibility_touch_guider_test.cpp | 48 static void SetTouchGuiderPoint(MMI::PointerEvent::PointerItem &point, int id, int x, int y); 50 void PointerEventTest(std::vector<MMI::PointerEvent::PointerItem> &points, 51 MMI::PointerEvent::PointerItem movepoint2, MMI::PointerEvent::PointerItem movepoint3); 58 std::shared_ptr<MMI::PointerEvent> CreateTouchEvent(int32_t action); 59 std::shared_ptr<MMI::PointerEvent> CreateTouchEvent(int32_t action, 60 std::vector<MMI::PointerEvent::PointerItem> &points, int32_t pointerCount, int64_t occurredTime, 62 std::shared_ptr<MMI::PointerEvent> CreateMoveEvent(int32_t pointerCount); 67 void TouchGuiderTest::PointerEventTest(std::vector<MMI::PointerEvent::PointerItem> &points, in PointerEventTest() 68 MMI in PointerEventTest() [all...] |
H A D | accessibility_mouse_autoclick_test.cpp | 85 std::shared_ptr<MMI::PointerEvent> event = MMI::PointerEvent::Create(); in HWTEST_F() 95 event->SetSourceType(MMI::PointerEvent::SOURCE_TYPE_MOUSE); in HWTEST_F() 96 event->SetPointerAction(MMI::PointerEvent::POINTER_ACTION_MOVE); in HWTEST_F() 97 MMI::PointerEvent::PointerItem item; in HWTEST_F() 118 std::shared_ptr<MMI::PointerEvent> event = MMI::PointerEvent::Create(); in HWTEST_F() 128 event->SetSourceType(MMI::PointerEvent::SOURCE_TYPE_MOUSE); in HWTEST_F() 129 event->SetPointerAction(MMI::PointerEvent::POINTER_ACTION_MOVE); in HWTEST_F() 131 MMI in HWTEST_F() [all...] |
H A D | accessibility_input_interceptor_test.cpp | 64 MMI::MockInputManager::ClearInputEventConsumer(); in SetUp() 180 std::shared_ptr<MMI::PointerEvent> event = MMI::PointerEvent::Create(); in HWTEST_F() 198 std::shared_ptr<MMI::PointerEvent> event = MMI::PointerEvent::Create(); in HWTEST_F() 199 MMI::PointerEvent::PointerItem item = {}; in HWTEST_F() 202 event->SetSourceType(MMI::PointerEvent::SOURCE_TYPE_TOUCHSCREEN); in HWTEST_F() 203 event->SetPointerAction(MMI::PointerEvent::POINTER_ACTION_DOWN); in HWTEST_F() 206 auto inputEventConsumer = MMI::MockInputManager::GetInputEventConsumer(); in HWTEST_F() 227 std::shared_ptr<MMI in HWTEST_F() [all...] |
/foundation/barrierfree/accessibility/services/aams/src/ |
H A D | accessibility_mouse_key.cpp | 49 MMI::KeyEvent::KEYCODE_NUMPAD_1, MMI::KeyEvent::KEYCODE_NUMPAD_2, MMI::KeyEvent::KEYCODE_NUMPAD_3, 50 MMI::KeyEvent::KEYCODE_NUMPAD_4, MMI::KeyEvent::KEYCODE_NUMPAD_5, MMI::KeyEvent::KEYCODE_NUMPAD_6, 51 MMI::KeyEvent::KEYCODE_NUMPAD_7, MMI::KeyEvent::KEYCODE_NUMPAD_8, MMI::KeyEvent::KEYCODE_NUMPAD_9, 52 MMI [all...] |
/foundation/arkui/ace_engine/frameworks/component_test/core/ |
H A D | action.h | 53 OHOS::MMI::KeyCode key; 56 constexpr KeyInput keyValue[] = { { false, OHOS::MMI::KeyCode::KEY_SPACE }, { true, OHOS::MMI::KeyCode::KEY_1 }, 57 { true, OHOS::MMI::KeyCode::KEY_APOSTROPHE }, { true, OHOS::MMI::KeyCode::KEY_3 }, 58 { true, OHOS::MMI::KeyCode::KEY_4 }, { true, OHOS::MMI::KeyCode::KEY_5 }, { true, OHOS::MMI::KeyCode::KEY_7 }, 59 { false, OHOS::MMI::KeyCode::KEY_APOSTROPHE }, { true, OHOS::MMI [all...] |
/foundation/arkui/ace_engine/adapter/ohos/osal/ |
H A D | mouse_style_ohos.cpp | 35 auto inputManager = MMI::InputManager::GetInstance(); in SetPointerStyle() 38 { MouseFormat::DEFAULT, MMI::DEFAULT }, in SetPointerStyle() 39 { MouseFormat::EAST, MMI::EAST }, in SetPointerStyle() 40 { MouseFormat::WEST, MMI::WEST }, in SetPointerStyle() 41 { MouseFormat::SOUTH, MMI::SOUTH }, in SetPointerStyle() 42 { MouseFormat::NORTH, MMI::NORTH }, in SetPointerStyle() 43 { MouseFormat::WEST_EAST, MMI::WEST_EAST }, in SetPointerStyle() 44 { MouseFormat::NORTH_SOUTH, MMI::NORTH_SOUTH }, in SetPointerStyle() 45 { MouseFormat::NORTH_EAST, MMI::NORTH_EAST }, in SetPointerStyle() 46 { MouseFormat::NORTH_WEST, MMI in SetPointerStyle() [all...] |
/foundation/multimodalinput/input/intention/adapters/input_adapter/src/ |
H A D | input_adapter.cpp | 31 class PointerFilter : public MMI::IInputEventFilter { 33 explicit PointerFilter(std::function<bool(std::shared_ptr<MMI::PointerEvent>)> filter) in PointerFilter() 36 bool OnInputEvent(std::shared_ptr<MMI::PointerEvent> pointerEvent) const override 41 bool OnInputEvent(std::shared_ptr<MMI::KeyEvent> keyEvent) const override 47 std::function<bool(std::shared_ptr<MMI::PointerEvent>)> filter_; 50 class InterceptorConsumer : public MMI::IInputEventConsumer { 52 InterceptorConsumer(std::function<void(std::shared_ptr<MMI::PointerEvent>)> pointerCb, in InterceptorConsumer() 53 std::function<void(std::shared_ptr<MMI::KeyEvent>)> keyCb) in InterceptorConsumer() 56 void OnInputEvent(std::shared_ptr<MMI::KeyEvent> keyEvent) const override 63 void OnInputEvent(std::shared_ptr<MMI [all...] |
/foundation/arkui/ace_engine/adapter/ohos/entrance/ |
H A D | mmi_event_convertor.h | 36 { SourceType::TOUCH, MMI::PointerEvent::SOURCE_TYPE_TOUCHSCREEN }, 37 { SourceType::TOUCH_PAD, MMI::PointerEvent::SOURCE_TYPE_TOUCHPAD }, 38 { SourceType::MOUSE, MMI::PointerEvent::SOURCE_TYPE_MOUSE }, 42 { TouchType::CANCEL, MMI::PointerEvent::POINTER_ACTION_CANCEL }, 43 { TouchType::DOWN, MMI::PointerEvent::POINTER_ACTION_DOWN }, 44 { TouchType::MOVE, MMI::PointerEvent::POINTER_ACTION_MOVE }, 45 { TouchType::UP, MMI::PointerEvent::POINTER_ACTION_UP }, 46 { TouchType::PULL_DOWN, MMI::PointerEvent::POINTER_ACTION_PULL_DOWN }, 47 { TouchType::PULL_MOVE, MMI::PointerEvent::POINTER_ACTION_PULL_MOVE }, 48 { TouchType::PULL_UP, MMI [all...] |
H A D | ace_view_ohos.cpp | 96 const std::shared_ptr<MMI::PointerEvent>& pointerEvent, const RefPtr<OHOS::Ace::NG::FrameNode>& node, in DispatchTouchEvent() 104 MMI::InputManager::GetInstance()->MarkProcessed( in DispatchTouchEvent() 116 MMI::InputManager::GetInstance()->MarkProcessed( in DispatchTouchEvent() 124 if (pointerEvent->GetSourceType() == MMI::PointerEvent::SOURCE_TYPE_MOUSE) { in DispatchTouchEvent() 125 int32_t toolType = MMI::PointerEvent::TOOL_TYPE_MOUSE; in DispatchTouchEvent() 130 if ((pointerAction >= MMI::PointerEvent::POINTER_ACTION_AXIS_BEGIN && in DispatchTouchEvent() 131 pointerAction <= MMI::PointerEvent::POINTER_ACTION_AXIS_END) || in DispatchTouchEvent() 132 (pointerAction >= MMI::PointerEvent::POINTER_ACTION_ROTATE_BEGIN && in DispatchTouchEvent() 133 pointerAction <= MMI::PointerEvent::POINTER_ACTION_ROTATE_END) || in DispatchTouchEvent() 134 (toolType == MMI in DispatchTouchEvent() [all...] |
/foundation/barrierfree/accessibility/services/test/mock/ |
H A D | mock_aams_accessibility_touch_guider.cpp | 59 static void TouchGuiderPointSet(MMI::PointerEvent::PointerItem &point, int id, int x, int y); 60 bool OnPointerEventOnePointsTest1(std::vector<MMI::PointerEvent::PointerItem> &points, 61 MMI::PointerEvent::PointerItem point1, MMI::PointerEvent::PointerItem point2, 62 MMI::PointerEvent::PointerItem point3, MMI::PointerEvent::PointerItem point4); 63 bool OnPointerEventOnePointsTest3(std::vector<MMI::PointerEvent::PointerItem> &point, 64 MMI::PointerEvent::PointerItem point1, MMI::PointerEvent::PointerItem point2, 65 MMI [all...] |
H A D | mock_aams_accessibility_touchEvent_injector_test.cpp | 124 MMI::MockInputManager::ClearTouchActions(); in TearDown() 151 MMI::MockInputManager::ClearTouchActions(); in HWTEST_F() 158 if (MMI::PointerEvent::POINTER_ACTION_MOVE == MMI::MockInputManager::GetTouchActionOfTargetIndex(1)) { in HWTEST_F() 165 EXPECT_EQ(MMI::PointerEvent::POINTER_ACTION_HOVER_ENTER, MMI::MockInputManager::GetTouchActionOfTargetIndex(0)); in HWTEST_F() 192 MMI::MockInputManager::ClearTouchActions(); in HWTEST_F() 199 if (MMI::PointerEvent::POINTER_ACTION_MOVE == MMI::MockInputManager::GetTouchActionOfTargetIndex(1)) { in HWTEST_F() 206 EXPECT_EQ(MMI in HWTEST_F() [all...] |
/foundation/barrierfree/accessibility/services/test/moduletest/aamstest/aams_accessibility_touch_guider_test/ |
H A D | aams_accessibility_touch_guider_test.cpp | 59 static void TouchGuiderPointSet(MMI::PointerEvent::PointerItem &point, int id, int x, int y); 60 bool OnPointerEventOnePointsTest1(std::vector<MMI::PointerEvent::PointerItem> &points, 61 MMI::PointerEvent::PointerItem point1, MMI::PointerEvent::PointerItem point2, 62 MMI::PointerEvent::PointerItem point3, MMI::PointerEvent::PointerItem point4); 63 bool OnPointerEventOnePointsTest3(std::vector<MMI::PointerEvent::PointerItem> &point, 64 MMI::PointerEvent::PointerItem point1, MMI::PointerEvent::PointerItem point2, 65 MMI [all...] |
/foundation/barrierfree/accessibility/services/aams/include/ |
H A D | accessibility_zoom_gesture.h | 46 virtual bool OnPointerEvent(MMI::PointerEvent &event) override; 62 void CacheEvents(MMI::PointerEvent &event); 65 void RecognizeInReadyState(MMI::PointerEvent &event); 66 void RecognizeInZoomStateDownEvent(MMI::PointerEvent &event); 67 void RecognizeInZoomState(MMI::PointerEvent &event); 68 void RecognizeInSlidingState(MMI::PointerEvent &event); 69 void RecognizeScroll(MMI::PointerEvent &event, ZOOM_FOCUS_COORDINATE &coordinate); 70 void RecognizeScale(MMI::PointerEvent &event, ZOOM_FOCUS_COORDINATE &coordinate); 71 void CalcFocusCoordinate(MMI::PointerEvent &event, ZOOM_FOCUS_COORDINATE &coordinate); 72 float CalcScaleSpan(MMI [all...] |
H A D | accessibility_touch_guider.h | 69 std::shared_ptr<MMI::PointerEvent> lastHoverEvent; 79 std::shared_ptr<MMI::PointerEvent> lastEvent; 146 bool OnPointerEvent(MMI::PointerEvent &event) override; 153 void HandlePointerEvent(MMI::PointerEvent &event); 165 void SendPointerDownEventToMultimodal(MMI::PointerEvent event, int32_t action); 172 void SendEventToMultimodal(MMI::PointerEvent &event, int32_t action); 190 std::list<MMI::PointerEvent> getHoverEnterAndMoveEvent(); 201 std::shared_ptr<MMI::PointerEvent> getLastReceivedEvent(); 243 bool OnDoubleTap(MMI::PointerEvent &event) override; 272 bool OnCancelled(MMI [all...] |
H A D | accessibility_screen_touch.h | 70 bool OnPointerEvent(MMI::PointerEvent &event) override; 77 void HandleResponseDelayStateInnerDown(MMI::PointerEvent &event); 78 void HandleResponseDelayStateInnerMove(MMI::PointerEvent &event); 79 void HandleResponseDelayStateInnerUp(MMI::PointerEvent &event); 80 void HandleResponseDelayState(MMI::PointerEvent &event); 82 void HandleIgnoreRepeatClickStateInnerDown(MMI::PointerEvent &event); 83 void HandleIgnoreRepeatClickStateInnerMove(MMI::PointerEvent &event); 84 void HandleIgnoreRepeatClickStateInnerUp(MMI::PointerEvent &event); 85 void HandleIgnoreRepeatClickState(MMI::PointerEvent &event); 87 void HandleBothStateInnerDown(MMI [all...] |
/foundation/multimodalinput/input/intention/cooperate/plugin/include/input_event_transmission/ |
H A D | input_event_serialization.h | 33 static int32_t KeyEventToNetPacket(const std::shared_ptr<MMI::KeyEvent> key, NetPacket &pkt); 34 static int32_t NetPacketToKeyEvent(NetPacket &pkt, std::shared_ptr<MMI::KeyEvent> key); 35 static int32_t SwitchEventToNetPacket(const std::shared_ptr<MMI::SwitchEvent> key, NetPacket &pkt); 36 static int32_t NetPacketToSwitchEvent(NetPacket &pkt, std::shared_ptr<MMI::SwitchEvent> key); 37 static int32_t Marshalling(std::shared_ptr<MMI::PointerEvent> event, NetPacket &pkt); 38 static int32_t Unmarshalling(NetPacket &pkt, std::shared_ptr<MMI::PointerEvent> event); 40 static int32_t MarshallingEnhanceData(std::shared_ptr<MMI::PointerEvent> event, NetPacket &pkt); 41 static int32_t UnmarshallingEnhanceData(NetPacket &pkt, std::shared_ptr<MMI::PointerEvent> event); 42 static int32_t MarshallingEnhanceData(std::shared_ptr<MMI::KeyEvent> event, NetPacket &pkt); 43 static int32_t UnmarshallingEnhanceData(NetPacket &pkt, std::shared_ptr<MMI [all...] |
/foundation/barrierfree/accessibility/services/test/moduletest/aamstest/aams_accessibility_touchEvent_injector_test/ |
H A D | aams_accessibility_touchEvent_injector_test.cpp | 124 MMI::MockInputManager::ClearTouchActions(); in TearDown() 151 MMI::MockInputManager::ClearTouchActions(); in HWTEST_F() 158 if (MMI::PointerEvent::POINTER_ACTION_MOVE == MMI::MockInputManager::GetTouchActionOfTargetIndex(1)) { in HWTEST_F() 165 EXPECT_EQ(MMI::PointerEvent::POINTER_ACTION_HOVER_ENTER, MMI::MockInputManager::GetTouchActionOfTargetIndex(0)); in HWTEST_F() 192 MMI::MockInputManager::ClearTouchActions(); in HWTEST_F() 199 if (MMI::PointerEvent::POINTER_ACTION_MOVE == MMI::MockInputManager::GetTouchActionOfTargetIndex(1)) { in HWTEST_F() 206 EXPECT_EQ(MMI in HWTEST_F() [all...] |
/foundation/arkui/ace_engine/adapter/ohos/tools/raw_input_injector/ |
H A D | injecting_executor.cpp | 32 return MMI::PointerEvent::POINTER_ACTION_DOWN; in GetPointerActionFromCommandType() 34 return MMI::PointerEvent::POINTER_ACTION_MOVE; in GetPointerActionFromCommandType() 36 return MMI::PointerEvent::POINTER_ACTION_UP; in GetPointerActionFromCommandType() 38 return MMI::PointerEvent::POINTER_ACTION_CANCEL; in GetPointerActionFromCommandType() 40 return MMI::PointerEvent::POINTER_ACTION_MOVE; in GetPointerActionFromCommandType() 47 case MMI::PointerEvent::POINTER_ACTION_DOWN: in GetCommandTypeFromPointerAction() 49 case MMI::PointerEvent::POINTER_ACTION_MOVE: in GetCommandTypeFromPointerAction() 51 case MMI::PointerEvent::POINTER_ACTION_UP: in GetCommandTypeFromPointerAction() 53 case MMI::PointerEvent::POINTER_ACTION_CANCEL: in GetCommandTypeFromPointerAction() 65 case MMI in GetPointerActionName() [all...] |
/foundation/window/window_manager/window_scene/session_manager/include/ |
H A D | scene_session_dirty_manager.h | 32 MMI::Direction ConvertDegreeToMMIRotation(float degree, MMI::DisplayMode displayMode);
33 std::string DumpWindowInfo(const MMI::WindowInfo& info);
34 std::string DumpRect(const std::vector<MMI::Rect>& rects);
53 std::pair<std::vector<MMI::WindowInfo>, std::vector<std::shared_ptr<Media::PixelMap>>>
54 GetFullWindowInfoList(const std::vector<MMI::WindowInfo>& lastWindowInfoList);
60 std::vector<MMI::WindowInfo> FullSceneSessionInfoUpdate() const;
62 std::pair<MMI::WindowInfo, std::shared_ptr<Media::PixelMap>>
63 GetWindowInfo(const sptr<SceneSession>& sceneSession, const std::vector<MMI::WindowInfo>& lastWindowInfoList,
69 MMI [all...] |
/foundation/arkui/ace_engine/frameworks/core/components_ng/pattern/window_scene/scene/ |
H A D | window_event_process.cpp | 25 sptr<Rosen::Session> session, const std::shared_ptr<MMI::PointerEvent>& pointerEvent) in ProcessEnterLeaveEvent() 29 std::shared_ptr<MMI::PointerEvent> enterEvent = std::make_shared<MMI::PointerEvent>(*pointerEvent); in ProcessEnterLeaveEvent() 32 if (action == MMI::PointerEvent::POINTER_ACTION_ENTER_WINDOW) { in ProcessEnterLeaveEvent() 40 enterEvent->SetPointerAction(MMI::PointerEvent::POINTER_ACTION_ENTER_WINDOW); in ProcessEnterLeaveEvent() 50 lastPointEvent_->SetPointerAction(MMI::PointerEvent::POINTER_ACTION_LEAVE_WINDOW); in ProcessEnterLeaveEvent() 54 enterEvent->SetPointerAction(MMI::PointerEvent::POINTER_ACTION_ENTER_WINDOW); in ProcessEnterLeaveEvent() 64 sptr<Rosen::Session> session, const std::shared_ptr<MMI::PointerEvent>& pointerEvent) in ProcessWindowMouseEvent() 68 if (pointerEvent->GetSourceType() != MMI::PointerEvent::SOURCE_TYPE_MOUSE) { in ProcessWindowMouseEvent() 72 if ((action == MMI in ProcessWindowMouseEvent() [all...] |
/foundation/arkui/ace_engine/adapter/preview/entrance/ |
H A D | event_dispatcher.cpp | 36 const std::map<MMI::KeyCode, wchar_t> PRINTABEL_SYMBOLS = { 37 { MMI::KeyCode::KEY_GRAVE, L'`' }, 38 { MMI::KeyCode::KEY_MINUS, L'-' }, 39 { MMI::KeyCode::KEY_EQUALS, L'=' }, 40 { MMI::KeyCode::KEY_LEFT_BRACKET, L'[' }, 41 { MMI::KeyCode::KEY_RIGHT_BRACKET, L']' }, 42 { MMI::KeyCode::KEY_BACKSLASH, L'\\' }, 43 { MMI::KeyCode::KEY_SEMICOLON, L';' }, 44 { MMI::KeyCode::KEY_APOSTROPHE, L'\'' }, 45 { MMI [all...] |