2anyleftrightallcontrolModifier shiftModifier altModifier metaModifiercapsLockModifiernumLockModifierscrollLockModifierfunctionModifiersymbolModifierisModifierPressedgetModifierSideisControlPressedisShiftPressed isAltPressed isMetaPressedmodifiersPressed physicalKey logicalKeykeyLabelshouldDispatchEvent isKeyPressed characterrepeatdatadebugFillPropertiesinstance _listeners addListenerremoveListenerkeyEventHandler_cachedKeyEventHandler_cachedKeyMessageHandlerhandleRawKeyEvent_modifierKeyMap_allModifiersExceptFn _allModifiers_synchronizeModifiers _keysPressed keysPressedphysicalKeysPressed lookUpLayoutclearKeysPressedmodifierside==hashCode KeyboardSide ModifierKeyRawKeyEventData RawKeyEventRawKeyDownEvent RawKeyUpEventRawKeyEventHandler RawKeyboard_ModifierSidePair€•DiagnosticPropertiesBuilder ValueChangedLogicalKeyboardKeyPhysicalKeyboardKeyisModifierPressed DeprecatedKeyEventRawKeyEventDataAndroidRawKeyEventDataFuchsia immutableDiagnosticableHardwareKeyboardlogicalKeysPressedsideboolanyallisControlPressedcontrolModifierisShiftPressed shiftModifier isAltPressed altModifier isMetaPressed metaModifierMapvalueskey debugPrint metaState physicalKey logicalKey character TextFieldCupertinoTextFieldStringFocus onKeyEventKeyboardListenerRawKeyboardListenerSystemChannelskeyEventrepeatObject isNotEmptylengthRawKeyEventDataWebcodelocationintkeyCodekIsWebflags codePointplainCodePointscanCode eventSourcevendorId productIddeviceId repeatCount containsKeyhidUsage modifiers fromCharCodeRawKeyEventDataMacOs characterscharactersIgnoringModifiersspecifiedLogicalKeyRawKeyEventDataIosRawKeyEventDataLinux keyHelper KeyHelperunicodeScalarValuesisDownRawKeyEventDataWindowscharacterCodePoint FlutterErrorinstancephysicalKeysPressedcontainsdataisLogicalKeyPressed keysPressed controlLeft controlRight shiftLeft shiftRightaltRightaltLeftmetaLeft metaRightkeyAoverridevoiddebugFillPropertiesaddDiagnosticsProperty KeyDownEvent KeyUpEventkeyEventHandlerKeyEventCallback_List FocusManagerremoveKeyEventManagerkeyMessageHandlerServicesBindingkeyEventManagerKeyMessageHandler KeyMessagemessagerawEventoflistenerInformationCollectorDiagnosticsNode reportErrorFlutterErrorDetails exceptionstacklibrarycontextErrorDescriptioninformationCollectorSetleftrightcapsLockModifiercapsLocknumLockModifiernumLockscrollLockModifier scrollLockfunctionModifierfnmodifiersPressedkeysaddAllPlatformoperatingSystemphysicalModifiertoSetvisibleForTestingclear runtimeTypemodifierhashDiagnosticable RawKeyEventuâÙøE/@û›�¾áWâ‚ÖƒDiagnosticPropertiesBuilder ValueChanged‚­package:flutter/foundation.dartƒ&ƒRLogicalKeyboardKeyPhysicalKeyboardKeyƒ keyboard_key.g.dart �dart:io�.package:flutter/foundation.dart�[ binding.dart�shardware_keyboard.dart�•raw_keyboard_android.dart�ºraw_keyboard_fuchsia.dart�ßraw_keyboard_ios.dart‚raw_keyboard_linux.dart‚#raw_keyboard_macos.dart‚Fraw_keyboard_web.dart‚graw_keyboard_windows.dart‚Œsystem_channels.dartÀkeÀ¼Z„p=€ˆ€§€©€Û� ���+�-�X�Z�r�”�¹�Þ�ÿ‚"‚E‚f‚‹‚«‚­ƒƒ ƒUƒWƒ£ƒòƒý„„R„£„ńʄلޅ)…;…I…d…�… …µ††††=†F†H†u††�†Î†Ö†Ù†Û‡#‡(‡x‡É‡ë‡ð‡ÿˆˆOˆaˆoˆŠˆÃˆÆˆÚˆøˆÿ‰)‰=‰?‰^‰e‰�‰¡‰£‰À‰Ç‰ñŠŠŠ!Š(ŠxŠÉŠàŠñŠó‹‹‹l‹¼‹ÿŒŒŒ8Œ?Œ�ŒÝ� �4�6�[�b�³ŽŽFŽ]Ž_ކŽ�޶ŽËŽÍŽíŽô��0�3�5�k�p�À� ��[���’�¡�¦�æ‘&‘o‘¢‘é‘÷’Z’“’–’¢’Ø“*“s“ƒ“è”#”(”D”F”•”£”ª”ü•:•A•�•Û–+–X–h–Öþ——W—Y—ª—ù˜˜6˜=˜Š˜Û™(™T™d™�™¼™Á™ô™öšHš‚š‰šÃš÷šþ›P›`› ›Û›àœ0œ2œ~œ¿œÆ��2�9�‰�™�מžžcžež¶žðž÷Ÿ1ŸaŸhŸ¶ŸÆ  = B Š Œ Þ¡¡¡Y¡Š¡‘¡à¡ð¢-¢h¢m¢·¢¹££G£N£ £Þ£î¤I¤„¤‰¤Â¤õ¥.¥S¥�¥ª¥É¥Ô¥é¦¦!¦j¦·§§5§E§x§“§ð¨¨¨¨6¨E¨N¨U¨i¨n¨p¨½¨Õ¨Ü©©©-©4©†©×©ÿªªIªPªˆª�ª ª§ªö«F«l«n«´«»¬¬¬L¬š¬ë­$­+­t­œ­£­ä®6®†®¼®Ò®ê®ì¯9¯V¯]¯«¯ù°J°}°„°Ö±&±x±È²²E²e²w²|²²�²°²µ³³R³¢³å³ê´4´…´¶´»µµUµ§µøµý¶ ¶¶`¶l¶¾¶Ê··-·w·�·Ó¸¸)¸E¸~¸�¸�¸¿¹¹Z¹j¹ˆ¹Ã¹Èºººmºžº¥ºò»#»3»f»¡»¦»é¼¼&¼T¼“¼­¼¶¼Ø½ ½"½W½Ž½Á½Ë½Ò½Ô½õ¾¾%¾3¾g¾€¾™¾Ã¾ö¿1¿h¿­¿æÀ@!À@[À@”À@ÏÀAÀAGÀAUÀAˆÀAÂÀAÏÀAèÀB,ÀBVÀB�ÀB²ÀBíÀBûÀCÀCUÀCbÀCyÀC¡ÀCâÀDEÀD|ÀD·ÀEÀEÀEHÀE]ÀEƒÀEÄÀF'ÀF^ÀF™ÀF§ÀFäÀG$ÀGIÀGVÀGmÀGÅÀGíÀH5ÀHlÀH£ÀHÜÀIÀIJÀI”ÀI¢ÀIÍÀJÀJÀJ6ÀJŒÀJ¶ÀJíÀK&ÀK[ÀK–ÀK¤ÀKÎÀLÀLÀL2ÀLSÀLeÀLgÀLµÀMÀMPÀMlÀMµÀM¾ÀMÅÀN#ÀNQÀNmÀNÄÀNñÀO2ÀO:ÀO?ÀOAÀOƒÀOŠÀOÄÀOûÀP ÀPNÀP‰ÀPŽÀPîÀPðÀQ@ÀQaÀQhÀQ¢ÀQÖÀQÝÀR*ÀR:ÀRzÀRµÀRºÀRÙÀSÀSMÀSRÀSTÀS¥ÀSÆÀSÍÀTÀT9ÀT@ÀT‹ÀT›ÀTÙÀUÀUÀU6ÀUpÀU¦ÀU«ÀU­ÀUüÀVÀV$ÀV^ÀVŽÀV•ÀVßÀW+ÀWuÀWÇÀWåÀWìÀX5ÀXEÀX�ÀX¼ÀXÁÀXÜÀY?ÀYDÀYFÀY–ÀY·ÀY¾ÀYøÀZ)ÀZ0ÀZzÀZŠÀZÇÀ[À[À[#À[ˆÀ[�À[�À[ØÀ[ßÀ\À\mÀ\¼À] À]À]\À]xÀ]À]ÏÀ^À^nÀ^»À_ À_:À_AÀ_’À_èÀ_þÀ`À`À`À`oÀ`¼À`øÀ`úÀaBÀaIÀa„ÀaÕÀbÀb ÀbVÀb~Àb…ÀbÇÀcÀciÀcŸÀcµÀcîÀcðÀd:ÀdTÀd[Àd©ÀdøÀeDÀe•ÀeâÀeöÀeýÀfNÀfŸÀf²Àf¹Àg Àg\Àg®ÀgþÀh Àh(Àh*ÀhXÀh_Àh®ÀhõÀi+Ài2ÀivÀiŒÀiŽÀiÈÀiçÀiéÀiöÀj<ÀjhÀjÀÀkÀk?ÀkƒÀkŠÀk�Àk’Àk”ÀkÅÀkÊÀlÀl$Àl)Àl8Àl=Àl�Àl�Àl¯ÀlèÀlëÀmÀm\ÀmlÀmŽÀmÉÀmÎÀnÀn!Àn#ÀnUÀnZÀn¤Àn²Àn·ÀnÆÀnËÀoÀoÀo<ÀouÀoxÀo£ÀoèÀoøÀpÀpSÀpXÀp¯Àp²Àp´ÀqÀqKÀqPÀq¢Àq°ÀqµÀrÀr:ÀrHÀrlÀr¥Àr¨ÀrèÀrêÀsÀs"ÀsjÀsœÀs¡ÀsëÀt;ÀtiÀtnÀtºÀu ÀuHÀuMÀu™ÀuçÀuìÀvÀvÀvfÀv—ÀvœÀvîÀwÀwlÀwzÀwÇÀwáÀx0ÀxgÀxlÀx{Àx€ÀxÌÀxíÀy6Ày‰Ày¢ÀyÛÀyéÀz ÀzFÀzIÀz^ÀznÀz”ÀzÏÀzÔÀzèÀzêÀ{À{'À{VÀ{‘À{–À{ÎÀ{ÐÀ|%À|'À|yÀ|™À| À|ñÀ}BÀ}ŠÀ}‘À}ÚÀ~)À~OÀ~VÀ~�À~ÇÀ~æÀ~ëÀ~íÀ>À\ÀcÀ•ÀÒÀôÀùÀûÀ€KÀ€lÀ€sÀ€ÄÀ� À�VÀ�‹À�ÚÀ‚+À‚zÀ‚£À‚ÐÀƒ3Àƒ‘ÀƒÒÀƒäÀ„À„À„6À„’À„íÀ…6À…HÀ…dÀ…tÀ…{À…ŸÀ…¤À…¦À…ÕÀ†À†;À†bÀ†’À†¢À†ÄÀ†ñÀ‡#À‡2À‡MÀ‡[À‡·À‡¼À‡¾ÀˆÀˆ%ÀˆTÀˆyÀˆ´ÀˆÞÀ‰/À‰}À‰™À‰ÈÀ‰ÏÀŠ ÀŠZÀŠ}ÀŠŠÀŠÇÀ‹À‹aÀ‹¬À‹ÄÀ‹ÌÀ‹ùÀŒGÀŒTÀŒ‚ÀŒžÀŒ©ÀŒÍÀŒ÷À� À�nÀ�†À�•À�¸À�ØÀ�ûÀŽÀŽ@ÀŽ�À޽ÀŽËÀŽ×ÀŽàÀŽçÀŽéÀŽüÀ�À�À�VÀ�ŒÀ�ñÀ�À�%À�‹À�´À�ÀÀ‘$À‘LÀ‘uÀ‘�À‘åÀ’ À’À’iÀ’¬À’ýÀ“AÀ“§À“ÑÀ“üÀ”À”nÀ”˜À”¤À”öÀ•;À•ŽÀ•ÔÀ•öÀ–À–;À–^À–ŠÀ–·À–ÃÀ—À—YÀ—¿À—èÀ—ôÀ˜DÀ˜‡À˜ìÀ™À™?À™KÀ™°À™ÙÀ™åÀš7ÀšyÀšÊÀ› À›_À›£À›õÀœ1Àœ€Àœ­Àœ·Àœ¹À� À�"À�wÀ�©À�ëÀž/ÀžuÀž½ÀŸÀŸSÀŸ—ÀŸÝÀ !À cÀ «À µÀ ·À¡À¡UÀ¡jÀ¡·À¡éÀ¢!À¢DÀ¢NÀ¢PÀ¢ƒÀ¢ÇÀ£À£À£mÀ£¼À¤ À¤ZÀ¤«À¤³À¤ûÀ¥LÀ¥ŒÀ¥ÞÀ¦0À¦HÀ¦JÀ¦¥À¦ìÀ§0À§bÀ§œÀ§¹À§ñÀ§ùÀ¨À¨UÀ¨�À¨ÕÀ¨üÀ©À©À©SÀ©sÀ©|À©´À©ãÀª(Àª=ÀªHÀªQÀª£ÀªÈÀ«À«(À«KÀ«bÀ«ªÀ«êÀ¬*À¬8À¬oÀ¬ˆÀ¬éÀ¬ùÀ­À­À­'À­4À­UÀ­hÀ­qÀ­¹À®À®À®À®aÀ®›À®ÐÀ®öÀ¯KÀ¯ŠÀ¯ÞÀ°/À°TÀ°£À°éÀ±À±À±$À±}À±ÊÀ±þÀ²À²-À²zÀ²ºÀ²ßÀ³À³<À³}À³·À³ÞÀ´À´KÀ´�À´¿À´òÀµLÀµoÀµ¨Àµ³Àµ¼À¶À¶?À¶zÀ¶ÞÀ·À·$À·+À·0À·2À·wÀ·«À·­À·ßÀ¸*À¸,À¸gÀ¸¹À¸»À¹À¹À¹WÀ¹ºÀ¹¼À¹øÀ¹ÿÀºMÀºcÀº—ÀºšÀºœÀº¨ÀºÃÀºùÀºûÀ»À»7À»9À»FÀ»jÀ»—À»¬À»³À¼À¼À¼À¼#À¼WÀ¼Z`/// @docImport 'package:flutter/cupertino.dart'; /// @docImport 'package:flutter/material.dart'; ��-�Z�r�”�¹�Þ�ÿ‚"‚E‚f‚‹‚­‚Öƒƒ ƒ&ƒR”0”?“u“v“€”%“‡“ì’Ú’Ú�h€”/// Abstract const constructor. This constructor enables subclasses to provide /// const constructors so that they can be used in const expressions.›R›S›]›Ý›d›¤™ø™ø‚6›ë�D/// Returns true if a CTRL modifier key was pressed at the time of this event, /// regardless of which side of the keyboard it is on. /// /// This method is deprecated and will be removed. Use /// [HardwareKeyboard.isControlPressed] instead. /// /// Use [isModifierPressed] if you need to know which control key was pressed.�‹�Œ�–ž���Ûœ4œ4‚-ž"�A/// Returns true if a SHIFT modifier key was pressed at the time of this /// event, regardless of which side of the keyboard it is on. /// /// This method is deprecated and will be removed. Use /// [HardwareKeyboard.isShiftPressed] instead. /// /// Use [isModifierPressed] if you need to know which shift key was pressed.Ÿ¸Ÿ¹ŸÃ ?ŸÊ žgžg‚! M�;/// Returns true if a ALT modifier key was pressed at the time of this event, /// regardless of which side of the keyboard it is on. /// /// This method is deprecated and will be removed. Use /// [HardwareKeyboard.isAltPressed] instead. /// /// Use [isModifierPressed] if you need to know which alt key was pressed.¡â¡ã¡í¢j¡ô¢1 Ž Ž‚'¢x�>/// Returns true if a META modifier key was pressed at the time of this event, /// regardless of which side of the keyboard it is on. /// /// This method is deprecated and will be removed. Use /// [HardwareKeyboard.isMetaPressed] instead. /// /// Use [isModifierPressed] if you need to know which meta key was pressed.£à£á£ë¤†£ò¤M¢»¢»…±¤®�/// Returns a map of modifier keys that were pressed at the time of this /// event, and the keyboard side or sides that the key was on. /// /// This method is deprecated and will be removed. For equivalent information, /// inspect [HardwareKeyboard.logicalKeysPressed] instead.¨r¨r�‹©ñ�K/// Returns an object representing the physical location of this key on a /// QWERTY keyboard. /// /// {@macro flutter.services.RawKeyEvent.physicalKey} /// /// See also: /// /// * [logicalKey] for the non-location-specific key generated by this event. /// * [RawKeyEvent.physicalKey], where this value is available on the event.ªª�g«_�,/// Returns an object representing the logical key that was pressed. /// /// {@macro flutter.services.RawKeyEvent.logicalKey} /// /// See also: /// /// * [physicalKey] for the location-specific key generated by this event. /// * [RawKeyEvent.logicalKey], where this value is available on the event.«p«pƒx®ßƒ0/// Returns the Unicode string representing the label on this key. /// /// This value is an empty string if there's no key label data for a key. /// /// {@template flutter.services.RawKeyEventData.keyLabel} /// Do not use the [keyLabel] to compose a text string: it will be missing /// special processing for Unicode strings for combining characters and other /// special characters, and the effects of modifiers. /// /// If you are looking for the character produced by a key event, use /// [RawKeyEvent.character] instead. /// /// If you are composing text strings, use the [TextField] or /// [CupertinoTextField] widgets, since those automatically handle many of the /// complexities of managing keyboard input, like showing a soft keyboard or /// interacting with an input method editor (IME). /// {@endtemplate}———(—.—.$—; –Z–[–e—–l–Ç—B—N—O”H”Hƒ — �ó/// Returns true if the given [ModifierKey] was pressed at the time of this /// event. /// /// This method is deprecated and will be removed. For equivalent information, /// inspect [HardwareKeyboard.logicalKeysPressed] instead. /// /// If [side] is specified, then this restricts its check to the specified /// side of the keyboard. Defaults to checking for the key being down on /// either side of the keyboard. If there is only one instance of the key on /// the keyboard, then [side] is ignored.™á™á™í™V™W™a™¾™h™…—[—[‚—™Ñ�ß/// Returns a [KeyboardSide] enum value that describes which side or sides of /// the given keyboard modifier key were pressed at the time of this event. /// /// This method is deprecated and will be removed. /// /// If the modifier key wasn't pressed at the time of this event, returns /// null. If the given key only appears in one place on the keyboard, returns /// [KeyboardSide.all] if pressed. If the given platform does not specify /// the side, return [KeyboardSide.any].®î®îƒŒ²Lƒ./// Whether a key down event, and likewise its accompanying key up event, /// should be dispatched. /// /// Certain events on some platforms should not be dispatched to listeners /// according to Flutter's event model. For example, on macOS, Fn keys are /// skipped to be consistent with other platform. On Win32, events dispatched /// for IME (`VK_PROCESSKEY`) are also skipped. /// /// This method will be called upon every down events. By default, this method /// always return true. Subclasses should override this method to define the /// filtering rule for the platform. If this method returns false for an event /// message, the event will not be dispatched to listeners, but respond with /// "handled: true" immediately. Moreover, the following up event with the /// same physical key will also be skipped.‘é‘ê‘ô’“‘ù’\’–’—�5�5£H’±‚¤/// Base class for platform-specific key event data. /// /// This class is deprecated, and will be removed. Platform specific key event /// data will no be longer available. See [KeyEvent] for what is available. /// /// This base class exists to have a common type to use for each of the /// target platform's key event data structures. /// /// See also: /// /// * [RawKeyEventDataAndroid], a specialization for Android. /// * [RawKeyEventDataFuchsia], a specialization for Fuchsia. /// * [RawKeyDownEvent] and [RawKeyUpEvent], the classes that hold the /// reference to [RawKeyEventData] subclasses. /// * [RawKeyboard], which uses these interfaces to expose key data.¹Ð¹Û¹Ý¹Ý¹ë¹ñ¹ñ¹öººº¹\¹]¹g¹Å¹n¹Œº¸Á¸Á�V€”/// Abstract const constructor. This constructor enables subclasses to provide /// const constructors so that they can be used in const expressions.»¨»°»»»Ç»È»È»Ý»%»&»0»£»7»jºº• »¼€ø/// Creates a concrete [RawKeyEvent] class from a message in the form received /// on the [SystemChannels.keyEvent] channel. /// /// [RawKeyEvent.repeat] will be derived from the current keyboard state, /// instead of using the message information.ÀhÀcò„3Àhƒâ/// Returns the Unicode character (grapheme cluster) completed by this /// keystroke, if any. /// /// This will only return a character if this keystroke, combined with any /// preceding keystroke(s), generated a character, and only on a "key down" /// event. It will return null if no character has been generated by the /// keystroke (e.g. a "dead" or "combining" key), or if the corresponding key /// is a key without a visual representation, such as a modifier key or a /// control key. /// /// This can return multiple Unicode code points, since some characters (more /// accurately referred to as grapheme clusters) are made up of more than one /// code point. /// /// The [character] doesn't take into account edits by an input method editor /// (IME), or manage the visibility of the soft keyboard on touch devices. For /// composing text, use the [TextField] or [CupertinoTextField] widgets, since /// those automatically handle many of the complexities of managing keyboard /// input.ÀiƒÀh,�]Àiƒ�6/// Whether this is a repeated down event. /// /// When a key is held down, the systems usually fire a down event and then /// a series of repeated down events. The [repeat] is false for the /// first event and true for the following events. /// /// The [repeat] attribute is always false for [RawKeyUpEvent]s.ÀiàÀi�TÀià6/// Platform-specific information about the key event.ÀR,ÀR-ÀR7ÀR·ÀR>ÀR~ÀPòÀPò‚^ÀRÅ�$/// Returns true if a CTRL modifier key is pressed, regardless of which side /// of the keyboard it is on. /// /// This method is deprecated and will be removed. Use /// [HardwareKeyboard.isControlPressed] instead. /// /// Use [isKeyPressed] if you need to know which control key was pressed.ÀT�ÀTŽÀT˜ÀUÀTŸÀTÝÀSVÀSV‚SÀU$�!/// Returns true if a SHIFT modifier key is pressed, regardless of which side /// of the keyboard it is on. /// /// This method is deprecated and will be removed. Use /// [HardwareKeyboard.isShiftPressed] instead. /// /// Use [isKeyPressed] if you need to know which shift key was pressed.ÀX7ÀX8ÀXBÀX¾ÀXIÀX…ÀU¯ÀU¯ƒ“ÀXÌ‚`/// Returns true if a ALT modifier key is pressed, regardless of which side /// of the keyboard it is on. /// /// This method is deprecated and will be removed. Use /// [HardwareKeyboard.isAltPressed] instead. /// /// The `AltGr` key that appears on some keyboards is considered to be /// the same as [LogicalKeyboardKey.altRight] on some platforms (notably /// Android). On platforms that can distinguish between `altRight` and /// `altGr`, a press of `AltGr` will not return true here, and will need to be /// tested for separately. /// /// Use [isKeyPressed] if you need to know which alt key was pressed.ÀZ|ÀZ}ÀZ‡À[ÀZŽÀZËÀYHÀYH‚CÀ[�/// Returns true if a META modifier key is pressed, regardless of which side /// of the keyboard it is on. /// /// This method is deprecated and will be removed. Use /// [HardwareKeyboard.isMetaPressed] instead. /// /// Use [isKeyPressed] if you need to know which meta key was pressed.À[‘À[‘…eÀ`Ö„á/// Returns an object representing the physical location of this key. /// /// {@template flutter.services.RawKeyEvent.physicalKey} /// The [PhysicalKeyboardKey] ignores the key map, modifier keys (like SHIFT), /// and the label on the key. It describes the location of the key as if it /// were on a QWERTY keyboard regardless of the keyboard mapping in effect. /// /// [PhysicalKeyboardKey]s are used to describe and test for keys in a /// particular location. /// /// For instance, if you wanted to make a game where the key to the right of /// the CAPS LOCK key made the player move left, you would be comparing the /// result of this [physicalKey] with [PhysicalKeyboardKey.keyA], since that /// is the key next to the CAPS LOCK key on a QWERTY keyboard. This would /// return the same thing even on a French keyboard where the key next to the /// CAPS LOCK produces a "Q" when pressed. /// /// If you want to make your app respond to a key with a particular character /// on it regardless of location of the key, use [RawKeyEvent.logicalKey] instead. /// {@endtemplate} /// /// See also: /// /// * [logicalKey] for the non-location specific key generated by this event. /// * [character] for the character generated by this keypress (if any).À`üÀ`ü‚ðÀc΂�/// Returns an object representing the logical key that was pressed. /// /// {@template flutter.services.RawKeyEvent.logicalKey} /// This method takes into account the key map and modifier keys (like SHIFT) /// to determine which logical key to return. /// /// If you are looking for the character produced by a key event, use /// [RawKeyEvent.character] instead. /// /// If you are collecting text strings, use the [TextField] or /// [CupertinoTextField] widgets, since those automatically handle many of the /// complexities of managing keyboard input, like showing a soft keyboard or /// interacting with an input method editor (IME). /// {@endtemplate}ÀP¢ÀP¢ÀPµÀOýÀOþÀPÀP‹ÀPÀPRÀOCÀOC�©ÀP•€­/// Returns true if the given [LogicalKeyboardKey] is pressed. /// /// This method is deprecated and will be removed. Use /// [HardwareKeyboard.isLogicalKeyPressed] instead.ÀjÀj&Àj-ÀiëÀiìÀiëÀië�¢Àiý¸¸¸&¸~¸+¸G¸�¸‚²�²�¹¸œ…}/// Defines the interface for raw key events. /// /// This type of event has been deprecated, and will be removed at a future /// date. Instead of using this, use the [KeyEvent] class instead, which means /// you will use [Focus.onKeyEvent], [HardwareKeyboard] and [KeyboardListener] /// to get these events instead of the raw key event equivalents. /// /// Raw key events pass through as much information as possible from the /// underlying platform's key events, which allows them to provide a high level /// of fidelity but a low level of portability. /// /// The event also provides an abstraction for the [physicalKey] and the /// [logicalKey], describing the physical location of the key, and the logical /// meaning of the key, respectively. These are more portable representations of /// the key events, and should produce the same results regardless of platform. /// /// See also: /// /// * [LogicalKeyboardKey], an object that describes the logical meaning of a /// key. /// * [PhysicalKeyboardKey], an object that describes the physical location of a /// key. /// * [RawKeyDownEvent], a specialization for events representing the user /// pressing a key. /// * [RawKeyUpEvent], a specialization for events representing the user /// releasing a key. /// * [RawKeyboard], which uses this interface to expose key data. /// * [RawKeyboardListener], a widget that listens for raw key events.ÀmÖÀmåÀmçÀmçÀmöÀmüÀmüÀnÀn Àn ÀnÀm^Àm_ÀmiÀmËÀmpÀm’ÀmÀm�@/// Creates a key event that represents the user pressing a key.Àl�Àl‚ÀlŒÀlèÀl‘Àl±Àk”Àk”‚‹Àlñ€ä/// The user has pressed a key on the keyboard. /// /// This class has been deprecated and will be removed. Use [KeyDownEvent] /// instead. /// /// See also: /// /// * [RawKeyboard], which uses this interface to expose key data.Àp`ÀpmÀpoÀpoÀp~Àp„Àp„ÀpŠ ÀoêÀoëÀoõÀpUÀoüÀpÀp˜Àp�Àp«Àp¤ÀpžÀp¦Ào¥Ào¥�A/// Creates a key event that represents the user releasing a key.ÀoÀoÀoÀouÀo Ào>Àn#Àn#‚�Ào~€ä/// The user has released a key on the keyboard. /// /// This class has been deprecated and will be removed. Use [KeyUpEvent] /// instead. /// /// See also: /// /// * [RawKeyboard], which uses this interface to expose key data.ÀzÖÀzáÀzãÀz`ÀzaÀzkÀzÑÀzrÀz˜Àz`Àz`€†Àzâ À{À{À{$À{“À{+À{ZÀ{¼À{ÇÀ{ÈÀ{ÉÀ{ÊÀ{±Àzì€ßÀ{±)/// The shared instance of [RawKeyboard].À| À|!À|À|À|À|À|À|À{øÀ{ÒPÀ{øÀ…¼À…¨*À…¼À…êÀ…×+À…ê�‘À�‰Àœ³À�\À�ˆÀ�]À�pÀ�sÀ�‡À�tÀ�×À�”À�šÀ�«À�ÖÀ�¬À�·À�¸À�ÅÀ�ÑÀ�ÒÀ�îÀ�!À�ÙÀ�íÀ�ÚÀ�ûÀ�À�À�qÀ�-À�3À�DÀ�pÀ�EÀ�PÀ�QÀ�^À�jÀ�kÀ�ˆÀ�¼À�sÀ�‡À�tÀ�•À�¨À�©À‘ À�ÈÀ�ÎÀ�ßÀ‘ À�àÀ�ëÀ�ìÀ�ùÀ‘À‘À‘!À‘}À‘ À‘ À‘ À‘.À‘AÀ‘BÀ‘VÀ‘iÀ‘jÀ‘ËÀ‘‰À‘�À‘ À‘ÊÀ‘¡À‘¬À‘­À‘ºÀ‘ÆÀ‘ÇÀ‘âÀ’À‘ÍÀ‘áÀ‘ÎÀ‘ïÀ’À’À’fÀ’!À’'À’8À’eÀ’9À’DÀ’EÀ’TÀ’`À’aÀ’ŠÀ’¨À’uÀ’‰À’vÀ’‹À’žÀ’ŸÀ’úÀ’´À’ºÀ’ËÀ’ùÀ’ÌÀ’×À’ØÀ’çÀ’óÀ’ôÀ“À“=À“ À“À“ À“À“2À“3À“�À“IÀ“OÀ“`À“ŒÀ“aÀ“lÀ“mÀ“|À“ˆÀ“‰À“¤À”À“�À“£À“�À“±À“ÄÀ“ÅÀ“ÛÀ“îÀ“ïÀ”TÀ”À”À”'À”SÀ”(À”3À”4À”CÀ”OÀ”PÀ”kÀ” À”VÀ”jÀ”WÀ”xÀ”‹À”ŒÀ”óÀ”¬À”²À”ÃÀ”òÀ”ÄÀ”ÏÀ”ÐÀ”áÀ”íÀ”îÀ•À•7À•À•À•À•À•+À•,À•‹À•CÀ•IÀ•ZÀ•ŠÀ•[À•fÀ•gÀ•xÀ•„À•…À•¯À•ÐÀ•šÀ•®À•›À•°À•ÃÀ•ÄÀ–DÀ•ÜÀ•âÀ•óÀ–CÀ–À– À– À–(À–4À–5À–[À–¿À–FÀ–ZÀ–GÀ–hÀ–{À–|À–”À–§À–¨À—À–ËÀ–ÑÀ–âÀ—À–ãÀ–îÀ–ïÀ—À— À— À—5À—UÀ— À—4À—!À—6À—IÀ—JÀ—¥À—aÀ—gÀ—xÀ—¤À—yÀ—„À—…À—“À—ŸÀ— À—¼À—ðÀ—§À—»À—¨À—ÉÀ—ÜÀ—ÝÀ˜AÀ—üÀ˜À˜À˜@À˜À˜À˜ À˜.À˜:À˜;À˜eÀ˜ƒÀ˜PÀ˜dÀ˜QÀ˜fÀ˜yÀ˜zÀ˜ÒÀ˜�À˜•À˜¦À˜ÑÀ˜§À˜²À˜³À˜ÁÀ˜ÍÀ˜ÎÀ˜éÀ™GÀ˜ÔÀ˜èÀ˜ÕÀ˜öÀ™ À™ À™À™2À™3À™–À™SÀ™YÀ™jÀ™•À™kÀ™vÀ™wÀ™…À™‘À™’À™­À™áÀ™˜À™¬À™™À™ºÀ™ÍÀ™ÎÀš4À™íÀ™óÀšÀš3ÀšÀšÀšÀš#Àš/Àš0ÀšXÀšuÀšCÀšWÀšDÀšYÀšlÀšmÀšÇÀš�Àš‡Àš˜ÀšÆÀš™Àš¤Àš¥Àš¶ÀšÂÀšÃÀšëÀ›ÀšÖÀšêÀš×ÀšìÀšÿÀ›À›\À›À›À›*À›[À›+À›6À›7À›KÀ›WÀ›XÀ›€À›ŸÀ›kÀ›À›lÀ›�À›”À›•À›òÀ›«À›±À›ÂÀ›ñÀ›ÃÀ›ÎÀ›ÏÀ›áÀ›íÀ›îÀœÀœ-ÀœÀœÀœÀœÀœ*Àœ+À�CÀ��¯À�CSÀ�¦À ±À�}À�¥À�~À�“À�ÌÀ�±À�ÄÀ�ÅÀ�ÎÀ�àÀ�áÀžÀ�óÀžÀžÀžÀž#Àž$ÀžTÀž7ÀžJÀžKÀžVÀžhÀžiÀž›Àž}Àž�Àž‘Àž�Àž¯Àž°ÀžäÀžÅÀžØÀžÙÀžæÀžøÀžùÀŸ/ÀŸÀŸ"ÀŸ#ÀŸ1ÀŸCÀŸDÀŸwÀŸ[ÀŸnÀŸoÀŸyÀŸ‹ÀŸŒÀŸ¼ÀŸŸÀŸ²ÀŸ³ÀŸ¾ÀŸÐÀŸÑÀ ÀŸåÀŸøÀŸùÀ À À À DÀ )À <À =À FÀ XÀ YÀ ‰À kÀ ~À À ‹À �À žÀ�^À�$ƒŽÀ�^À¡æÀ¢JÀ¡½À¡åÀ¡¾À¡ÓÀ¢À¡ñÀ¢À¢À¢ À¢À¢À¢)À¢,À¡¦À¡l€ßÀ¡¦À·¦À·§À·}À·¥À·~À·“À·gÀ·4tÀ·gÀýÀý…¥À‚½‚†/// A handler for raw hardware keyboard events that will stop propagation if /// the handler returns true. /// /// This property is only a wrapper over [KeyEventManager.keyMessageHandler], /// and is kept only for backward compatibility. New code should use /// [KeyEventManager.keyMessageHandler] to set custom global key event /// handler. Setting [keyEventHandler] will cause /// [KeyEventManager.keyMessageHandler] to be set with a converted handler. /// If [KeyEventManager.keyMessageHandler] is set by [FocusManager] (the most /// common situation), then the exact value of [keyEventHandler] is a dummy /// callback and must not be invoked.À·¯À·¯yÀ·ý./// Returns the set of keys currently pressed.À¸.À¸.€‰À¸†7/// Returns the set of physical keys currently pressed.À†À†À†/À†À†�³À† À~ À~ "À~ºÀ|)À|)‚ÀÀ~”‚A/// Register a listener that is called every time the user presses or releases /// a hardware keyboard key. /// /// Since the listeners have no way to indicate what they did with the event, /// listeners are assumed to not handle the key event. These events will also /// be distributed to other listeners, and to the [keyEventHandler]. /// /// Most applications prefer to use the focus system (see [Focus] and /// [FocusManager]) to receive key events to the focused control instead of /// this kind of passive listener. /// /// Listeners can be removed with [removeListener].À«À«"ÀÅÀ~ïÀ~ï�Àœ€›/// Stop calling the given listener every time the user presses or releases a /// hardware keyboard key. /// /// Listeners can be added with [addListener].Àˆ>Àˆ>ÀˆJÀ‡ÀÀ‡À‡?Àˆ,`/// Process a new [RawKeyEvent] by recording the state changes and /// dispatching to listeners.À¢mÀ¢mÀ¢yÀ¢RÀ¢R”ÜÀ¢WÀ¹zÀ¹zÀ¹ŽÀ¸½À¸½€ûÀ¹m€’/// Returns the logical key that corresponds to the given pressed physical key. /// /// Returns null if the physical key is not currently pressed.ÀºOÀºPÀ¹¾À¹¾€×Àºj€‡/// Clears the list of keys returned from [keysPressed]. /// /// This is used by the testing framework to make sure tests are hermetic.ÀyÛÀyÜÀyæÀzFÀyëÀzÀrêÀrêÀG®ÀzO†Ê/// An interface for listening to raw key events. /// /// This class is deprecated and will be removed at a future date. The /// [HardwareKeyboard] class is its replacement. /// /// Raw key events pass through as much information as possible from the /// underlying platform's key events, which makes them provide a high level of /// fidelity but a low level of portability. /// /// A [RawKeyboard] is useful for listening to raw key events and hardware /// buttons that are represented as keys. Typically used by games and other apps /// that use keyboards for purposes other than text entry. /// /// These key events are typically only key events generated by a hardware /// keyboard, and not those from software keyboards or input method editors. /// /// ## Compared to [HardwareKeyboard] /// /// Behavior-wise, [RawKeyboard] provides a less unified, less regular event /// model than [HardwareKeyboard]. For example: /// /// * Down events might not be matched with an up event, and vice versa (the set /// of pressed keys is silently updated). /// * The logical key of the down event might not be the same as that of the up /// event. /// * Down events and repeat events are not easily distinguishable (must be /// tracked manually). /// * Lock modes (such as CapsLock) only have their "enabled" state recorded. /// There's no way to acquire their pressing state. /// /// See also: /// /// * [RawKeyDownEvent] and [RawKeyUpEvent], the classes used to describe /// specific raw key events. /// * [RawKeyboardListener], a widget that listens for raw key events. /// * [SystemChannels.keyEvent], the low-level channel used for receiving events /// from the system. /// * [HardwareKeyboard], the recommended replacement.ÀºËÀºÜÀºÝÀºÝ ÀºâÀºìÀºì ÀºñÀºÅÀºÅ2À»ÀºýÀ»À»0À»À»0À¼À¼À¼À¼=À¼-À»YÀ»Y À»`À»;À»<À»;À»;€×À»VÀºœÀº�ÀºœÀºœ�¼Àº®…·…·U† N/// Matches if either the left, right or both versions of the key are pressed.††0†?(/// Matches the left version of the key.†J†J2†w)/// Matches the right version of the key.†ƒ†ƒP†ÐI/// Matches the left and right version of the key pressed simultaneously.…;…<…F…�…K…fƒWƒWƒ€…¥�×/// An enum describing the side of the keyboard that a key is on, to allow /// discrimination between which key is pressed (e.g. the left or right SHIFT /// key). /// /// This enum is deprecated and will be removed. There is no direct substitute /// planned, since this enum will no longer be necessary once [RawKeyEvent] and /// associated APIs are removed. /// /// See also: /// /// * [RawKeyEventData.isModifierPressed], which accepts this enum as an /// argument. ˆÜˆÜ^‰+E/// The CTRL modifier key. /// /// Typically, there are two of these.‰A‰A]‰‘F/// The SHIFT modifier key. /// /// Typically, there are two of these.‰¥‰¥Y‰óD/// The ALT modifier key. /// /// Typically, there are two of these.ŠŠ€éŠâ€Ó/// The META modifier key. /// /// Typically, there are two of these. This is, for example, the Windows key /// on Windows (⊞), the Command (⌘) key on macOS and iOS, and the Search (ðŸ”�) /// key on Android.ŠõŠõ�Œ€ü/// The CAPS LOCK modifier key. /// /// Typically, there is one of these. Only shown as "pressed" when the caps /// lock is on, so on a key up when the mode is turned on, on each key press /// when it's enabled, and on a key down when it is turned off.ŒŒ��"€ú/// The NUM LOCK modifier key. /// /// Typically, there is one of these. Only shown as "pressed" when the num /// lock is on, so on a key up when the mode is turned on, on each key press /// when it's enabled, and on a key down when it is turned off.�8�8�"ŽH�/// The SCROLL LOCK modifier key. /// /// Typically, there is one of these. Only shown as "pressed" when the scroll /// lock is on, so on a key up when the mode is turned on, on each key press /// when it's enabled, and on a key down when it is turned off.ŽaŽagޏM/// The FUNCTION (Fn) modifier key. /// /// Typically, there is one of these.ŽÏŽÏ^�F/// The SYMBOL modifier key. /// /// Typically, there is one of these.ˆaˆbˆlˆÃˆqˆŒ†Û†ÛˆVˆË�{/// An enum describing the type of modifier key that is being pressed. /// /// This enum is deprecated and will be removed. There is no direct substitute /// planned, since this enum will no longer be necessary once [RawKeyEvent] and /// associated APIs are removed. /// /// See also: /// /// * [RawKeyEventData.isModifierPressed], which accepts this enum as an /// argument.Àr:Àr;ÀrEÀr¥ÀrJÀrnÀp´Àp´‚2Àr°�}/// A callback type used by [RawKeyboard.keyEventHandler] to send key events to /// a handler that can determine if the key has been handled or not. /// /// This typedef has been deprecated and will be removed. Use [KeyEventCallback] /// instead. /// /// The handler should return true if the key has been handled, and false if the /// key was not handled. It must not return null.€²package:flutter/cupertino.dart€äpackage:flutter/material.dart„p=€ˆ€§€©€Û� ���+�-�X�Z�r�”�¹�Þ�ÿ‚"‚E‚f‚‹‚«‚­ƒƒ ƒUƒWƒ£ƒòƒý„„R„£„ńʄلޅ)…;…I…d…�… …µ††††=†F†H†u††�†Î†Ö†Ù†Û‡#‡(‡x‡É‡ë‡ð‡ÿˆˆOˆaˆoˆŠˆÃˆÆˆÚˆøˆÿ‰)‰=‰?‰^‰e‰�‰¡‰£‰À‰Ç‰ñŠŠŠ!Š(ŠxŠÉŠàŠñŠó‹‹‹l‹¼‹ÿŒŒŒ8Œ?Œ�ŒÝ� �4�6�[�b�³ŽŽFŽ]Ž_ކŽ�޶ŽËŽÍŽíŽô��0�3�5�k�p�À� ��[���’�¡�¦�æ‘&‘o‘¢‘é‘÷’Z’“’–’¢’Ø“*“s“ƒ“è”#”(”D”F”•”£”ª”ü•:•A•�•Û–+–X–h–Öþ——W—Y—ª—ù˜˜6˜=˜Š˜Û™(™T™d™�™¼™Á™ô™öšHš‚š‰šÃš÷šþ›P›`› ›Û›àœ0œ2œ~œ¿œÆ��2�9�‰�™�מžžcžež¶žðž÷Ÿ1ŸaŸhŸ¶ŸÆ  = B Š Œ Þ¡¡¡Y¡Š¡‘¡à¡ð¢-¢h¢m¢·¢¹££G£N£ £Þ£î¤I¤„¤‰¤Â¤õ¥.¥S¥�¥ª¥É¥Ô¥é¦¦!¦j¦·§§5§E§x§“§ð¨¨¨¨6¨E¨N¨U¨i¨n¨p¨½¨Õ¨Ü©©©-©4©†©×©ÿªªIªPªˆª�ª ª§ªö«F«l«n«´«»¬¬¬L¬š¬ë­$­+­t­œ­£­ä®6®†®¼®Ò®ê®ì¯9¯V¯]¯«¯ù°J°}°„°Ö±&±x±È²²E²e²w²|²²�²°²µ³³R³¢³å³ê´4´…´¶´»µµUµ§µøµý¶ ¶¶`¶l¶¾¶Ê··-·w·�·Ó¸¸)¸E¸~¸�¸�¸¿¹¹Z¹j¹ˆ¹Ã¹Èºººmºžº¥ºò»#»3»f»¡»¦»é¼¼&¼T¼“¼­¼¶¼Ø½ ½"½W½Ž½Á½Ë½Ò½Ô½õ¾¾%¾3¾g¾€¾™¾Ã¾ö¿1¿h¿­¿æÀ@!À@[À@”À@ÏÀAÀAGÀAUÀAˆÀAÂÀAÏÀAèÀB,ÀBVÀB�ÀB²ÀBíÀBûÀCÀCUÀCbÀCyÀC¡ÀCâÀDEÀD|ÀD·ÀEÀEÀEHÀE]ÀEƒÀEÄÀF'ÀF^ÀF™ÀF§ÀFäÀG$ÀGIÀGVÀGmÀGÅÀGíÀH5ÀHlÀH£ÀHÜÀIÀIJÀI”ÀI¢ÀIÍÀJÀJÀJ6ÀJŒÀJ¶ÀJíÀK&ÀK[ÀK–ÀK¤ÀKÎÀLÀLÀL2ÀLSÀLeÀLgÀLµÀMÀMPÀMlÀMµÀM¾ÀMÅÀN#ÀNQÀNmÀNÄÀNñÀO2ÀO:ÀO?ÀOAÀOƒÀOŠÀOÄÀOûÀP ÀPNÀP‰ÀPŽÀPîÀPðÀQ@ÀQaÀQhÀQ¢ÀQÖÀQÝÀR*ÀR:ÀRzÀRµÀRºÀRÙÀSÀSMÀSRÀSTÀS¥ÀSÆÀSÍÀTÀT9ÀT@ÀT‹ÀT›ÀTÙÀUÀUÀU6ÀUpÀU¦ÀU«ÀU­ÀUüÀVÀV$ÀV^ÀVŽÀV•ÀVßÀW+ÀWuÀWÇÀWåÀWìÀX5ÀXEÀX�ÀX¼ÀXÁÀXÜÀY?ÀYDÀYFÀY–ÀY·ÀY¾ÀYøÀZ)ÀZ0ÀZzÀZŠÀZÇÀ[À[À[#À[ˆÀ[�À[�À[ØÀ[ßÀ\À\mÀ\¼À] À]À]\À]xÀ]À]ÏÀ^À^nÀ^»À_ À_:À_AÀ_’À_èÀ_þÀ`À`À`À`oÀ`¼À`øÀ`úÀaBÀaIÀa„ÀaÕÀbÀb ÀbVÀb~Àb…ÀbÇÀcÀciÀcŸÀcµÀcîÀcðÀd:ÀdTÀd[Àd©ÀdøÀeDÀe•ÀeâÀeöÀeýÀfNÀfŸÀf²Àf¹Àg Àg\Àg®ÀgþÀh Àh(Àh*ÀhXÀh_Àh®ÀhõÀi+Ài2ÀivÀiŒÀiŽÀiÈÀiçÀiéÀiöÀj<ÀjhÀjÀÀkÀk?ÀkƒÀkŠÀk�Àk’Àk”ÀkÅÀkÊÀlÀl$Àl)Àl8Àl=Àl�Àl�Àl¯ÀlèÀlëÀmÀm\ÀmlÀmŽÀmÉÀmÎÀnÀn!Àn#ÀnUÀnZÀn¤Àn²Àn·ÀnÆÀnËÀoÀoÀo<ÀouÀoxÀo£ÀoèÀoøÀpÀpSÀpXÀp¯Àp²Àp´ÀqÀqKÀqPÀq¢Àq°ÀqµÀrÀr:ÀrHÀrlÀr¥Àr¨ÀrèÀrêÀsÀs"ÀsjÀsœÀs¡ÀsëÀt;ÀtiÀtnÀtºÀu ÀuHÀuMÀu™ÀuçÀuìÀvÀvÀvfÀv—ÀvœÀvîÀwÀwlÀwzÀwÇÀwáÀx0ÀxgÀxlÀx{Àx€ÀxÌÀxíÀy6Ày‰Ày¢ÀyÛÀyéÀz ÀzFÀzIÀz^ÀznÀz”ÀzÏÀzÔÀzèÀzêÀ{À{'À{VÀ{‘À{–À{ÎÀ{ÐÀ|%À|'À|yÀ|™À| À|ñÀ}BÀ}ŠÀ}‘À}ÚÀ~)À~OÀ~VÀ~�À~ÇÀ~æÀ~ëÀ~íÀ>À\ÀcÀ•ÀÒÀôÀùÀûÀ€KÀ€lÀ€sÀ€ÄÀ� À�VÀ�‹À�ÚÀ‚+À‚zÀ‚£À‚ÐÀƒ3Àƒ‘ÀƒÒÀƒäÀ„À„À„6À„’À„íÀ…6À…HÀ…dÀ…tÀ…{À…ŸÀ…¤À…¦À…ÕÀ†À†;À†bÀ†’À†¢À†ÄÀ†ñÀ‡#À‡2À‡MÀ‡[À‡·À‡¼À‡¾ÀˆÀˆ%ÀˆTÀˆyÀˆ´ÀˆÞÀ‰/À‰}À‰™À‰ÈÀ‰ÏÀŠ ÀŠZÀŠ}ÀŠŠÀŠÇÀ‹À‹aÀ‹¬À‹ÄÀ‹ÌÀ‹ùÀŒGÀŒTÀŒ‚ÀŒžÀŒ©ÀŒÍÀŒ÷À� À�nÀ�†À�•À�¸À�ØÀ�ûÀŽÀŽ@ÀŽ�À޽ÀŽËÀŽ×ÀŽàÀŽçÀŽéÀŽüÀ�À�À�VÀ�ŒÀ�ñÀ�À�%À�‹À�´À�ÀÀ‘$À‘LÀ‘uÀ‘�À‘åÀ’ À’À’iÀ’¬À’ýÀ“AÀ“§À“ÑÀ“üÀ”À”nÀ”˜À”¤À”öÀ•;À•ŽÀ•ÔÀ•öÀ–À–;À–^À–ŠÀ–·À–ÃÀ—À—YÀ—¿À—èÀ—ôÀ˜DÀ˜‡À˜ìÀ™À™?À™KÀ™°À™ÙÀ™åÀš7ÀšyÀšÊÀ› À›_À›£À›õÀœ1Àœ€Àœ­Àœ·Àœ¹À� À�"À�wÀ�©À�ëÀž/ÀžuÀž½ÀŸÀŸSÀŸ—ÀŸÝÀ !À cÀ «À µÀ ·À¡À¡UÀ¡jÀ¡·À¡éÀ¢!À¢DÀ¢NÀ¢PÀ¢ƒÀ¢ÇÀ£À£À£mÀ£¼À¤ À¤ZÀ¤«À¤³À¤ûÀ¥LÀ¥ŒÀ¥ÞÀ¦0À¦HÀ¦JÀ¦¥À¦ìÀ§0À§bÀ§œÀ§¹À§ñÀ§ùÀ¨À¨UÀ¨�À¨ÕÀ¨üÀ©À©À©SÀ©sÀ©|À©´À©ãÀª(Àª=ÀªHÀªQÀª£ÀªÈÀ«À«(À«KÀ«bÀ«ªÀ«êÀ¬*À¬8À¬oÀ¬ˆÀ¬éÀ¬ùÀ­À­À­'À­4À­UÀ­hÀ­qÀ­¹À®À®À®À®aÀ®›À®ÐÀ®öÀ¯KÀ¯ŠÀ¯ÞÀ°/À°TÀ°£À°éÀ±À±À±$À±}À±ÊÀ±þÀ²À²-À²zÀ²ºÀ²ßÀ³À³<À³}À³·À³ÞÀ´À´KÀ´�À´¿À´òÀµLÀµoÀµ¨Àµ³Àµ¼À¶À¶?À¶zÀ¶ÞÀ·À·$À·+À·0À·2À·wÀ·«À·­À·ßÀ¸*À¸,À¸gÀ¸¹À¸»À¹À¹À¹WÀ¹ºÀ¹¼À¹øÀ¹ÿÀºMÀºcÀº—ÀºšÀºœÀº¨ÀºÃÀºùÀºûÀ»À»7À»9À»FÀ»jÀ»—À»¬À»³À¼À¼À¼À¼#À¼WÀ¼Z KeyboardSide ModifierKeyRawKeyEventData RawKeyEventRawKeyDownEvent RawKeyUpEvent RawKeyboard_ModifierSidePair)flutter.services.RawKeyEventData.keyLabel‚$Do not use the [keyLabel] to compose a text string: it will be missing special processing for Unicode strings for combining characters and other special characters, and the effects of modifiers. If you are looking for the character produced by a key event, use [RawKeyEvent.character] instead. If you are composing text strings, use the [TextField] or [CupertinoTextField] widgets, since those automatically handle many of the complexities of managing keyboard input, like showing a soft keyboard or interacting with an input method editor (IME).(flutter.services.RawKeyEvent.physicalKeyƒ_The [PhysicalKeyboardKey] ignores the key map, modifier keys (like SHIFT), and the label on the key. It describes the location of the key as if it were on a QWERTY keyboard regardless of the keyboard mapping in effect. [PhysicalKeyboardKey]s are used to describe and test for keys in a particular location. For instance, if you wanted to make a game where the key to the right of the CAPS LOCK key made the player move left, you would be comparing the result of this [physicalKey] with [PhysicalKeyboardKey.keyA], since that is the key next to the CAPS LOCK key on a QWERTY keyboard. This would return the same thing even on a French keyboard where the key next to the CAPS LOCK produces a "Q" when pressed. If you want to make your app respond to a key with a particular character on it regardless of location of the key, use [RawKeyEvent.logicalKey] instead.'flutter.services.RawKeyEvent.logicalKey�ÖThis method takes into account the key map and modifier keys (like SHIFT) to determine which logical key to return. If you are looking for the character produced by a key event, use [RawKeyEvent.character] instead. If you are collecting text strings, use the [TextField] or [CupertinoTextField] widgets, since those automatically handle many of the complexities of managing keyboard input, like showing a soft keyboard or interacting with an input method editor (IME).?î