€•QQŒsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ7/translations/zh_CN/firmware-guide/acpi/video_extension”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ7/translations/zh_TW/firmware-guide/acpi/video_extension”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ7/translations/it_IT/firmware-guide/acpi/video_extension”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ7/translations/ja_JP/firmware-guide/acpi/video_extension”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ7/translations/ko_KR/firmware-guide/acpi/video_extension”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ7/translations/sp_SP/firmware-guide/acpi/video_extension”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…””}”hh£sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1h¡hhhžhhŸŒQ/var/lib/git/docbuild/linux/Documentation/firmware-guide/acpi/video_extension.rst”h KubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒACPI video extensions”h]”hŒACPI video extensions”…””}”(hh»hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hh¶hžhhŸh³h KubhŒ paragraph”“”)”}”(hX•This driver implement the ACPI Extensions For Display Adapters for integrated graphics devices on motherboard, as specified in ACPI 2.0 Specification, Appendix B, allowing to perform some basic control like defining the video POST device, retrieving EDID information or to setup a video output, etc. Note that this is an ref. implementation only. It may or may not work for your integrated video device.”h]”hX•This driver implement the ACPI Extensions For Display Adapters for integrated graphics devices on motherboard, as specified in ACPI 2.0 Specification, Appendix B, allowing to perform some basic control like defining the video POST device, retrieving EDID information or to setup a video output, etc. Note that this is an ref. implementation only. It may or may not work for your integrated video device.”…””}”(hhËhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Khh¶hžhubhÊ)”}”(hŒ@The ACPI video driver does 3 things regarding backlight control.”h]”hŒ@The ACPI video driver does 3 things regarding backlight control.”…””}”(hhÙhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Khh¶hžhubhµ)”}”(hhh]”(hº)”}”(hŒBExport a sysfs interface for user space to control backlight level”h]”hŒBExport a sysfs interface for user space to control backlight level”…””}”(hhêhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hhçhžhhŸh³h KubhÊ)”}”(hXUIf the ACPI table has a video device, and acpi_backlight=vendor kernel command line is not present, the driver will register a backlight device and set the required backlight operation structure for it for the sysfs interface control. For every registered class device, there will be a directory named acpi_videoX under /sys/class/backlight.”h]”hXUIf the ACPI table has a video device, and acpi_backlight=vendor kernel command line is not present, the driver will register a backlight device and set the required backlight operation structure for it for the sysfs interface control. For every registered class device, there will be a directory named acpi_videoX under /sys/class/backlight.”…””}”(hhøhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KhhçhžhubhÊ)”}”(hŒmThe backlight sysfs interface has a standard definition here: Documentation/ABI/stable/sysfs-class-backlight.”h]”hŒmThe backlight sysfs interface has a standard definition here: Documentation/ABI/stable/sysfs-class-backlight.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KhhçhžhubhÊ)”}”(hŒ#And what ACPI video driver does is:”h]”hŒ#And what ACPI video driver does is:”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KhhçhžhubhŒdefinition_list”“”)”}”(hhh]”(hŒdefinition_list_item”“”)”}”(hŒ{actual_brightness: on read, control method _BQC will be evaluated to get the brightness level the firmware thinks it is at;”h]”(hŒterm”“”)”}”(hŒactual_brightness:”h]”hŒactual_brightness:”…””}”(hj/hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j-hŸh³h Khj)ubhŒ definition”“”)”}”(hhh]”hÊ)”}”(hŒhon read, control method _BQC will be evaluated to get the brightness level the firmware thinks it is at;”h]”hŒhon read, control method _BQC will be evaluated to get the brightness level the firmware thinks it is at;”…””}”(hjBhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Khj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1j=hj)ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j'hŸh³h Khj$ubj()”}”(hŒCbl_power: not implemented, will set the current brightness instead;”h]”(j.)”}”(hŒ bl_power:”h]”hŒ bl_power:”…””}”(hj`hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j-hŸh³h K!hj\ubj>)”}”(hhh]”hÊ)”}”(hŒ9not implemented, will set the current brightness instead;”h]”hŒ9not implemented, will set the current brightness instead;”…””}”(hjqhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K"hjnubah}”(h]”h ]”h"]”h$]”h&]”uh1j=hj\ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j'hŸh³h K!hj$hžhubj()”}”(hŒYbrightness: on write, control method _BCM will run to set the requested brightness level;”h]”(j.)”}”(hŒ brightness:”h]”hŒ brightness:”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j-hŸh³h K#hj‹ubj>)”}”(hhh]”hÊ)”}”(hŒMon write, control method _BCM will run to set the requested brightness level;”h]”hŒMon write, control method _BCM will run to set the requested brightness level;”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K$hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j=hj‹ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j'hŸh³h K#hj$hžhubj()”}”(hŒ9max_brightness: Derived from the _BCL package(see below);”h]”(j.)”}”(hŒmax_brightness:”h]”hŒmax_brightness:”…””}”(hj¾hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j-hŸh³h K%hjºubj>)”}”(hhh]”hÊ)”}”(hŒ)Derived from the _BCL package(see below);”h]”hŒ)Derived from the _BCL package(see below);”…””}”(hjÏhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K&hjÌubah}”(h]”h ]”h"]”h$]”h&]”uh1j=hjºubeh}”(h]”h ]”h"]”h$]”h&]”uh1j'hŸh³h K%hj$hžhubj()”}”(hŒtype: firmware ”h]”(j.)”}”(hŒtype:”h]”hŒtype:”…””}”(hjíhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j-hŸh³h K(hjéubj>)”}”(hhh]”hÊ)”}”(hŒfirmware”h]”hŒfirmware”…””}”(hjþhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K(hjûubah}”(h]”h ]”h"]”h$]”h&]”uh1j=hjéubeh}”(h]”h ]”h"]”h$]”h&]”uh1j'hŸh³h K(hj$hžhubeh}”(h]”h ]”h"]”h$]”h&]”uh1j"hhçhžhhŸh³h NubhÊ)”}”(hŒœNote that ACPI video backlight driver will always use index for brightness, actual_brightness and max_brightness. So if we have the following _BCL package::”h]”hŒ›Note that ACPI video backlight driver will always use index for brightness, actual_brightness and max_brightness. So if we have the following _BCL package:”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K*hhçhžhubhŒ literal_block”“”)”}”(hX^Method (_BCL, 0, NotSerialized) { Return (Package (0x0C) { 0x64, 0x32, 0x0A, 0x14, 0x1E, 0x28, 0x32, 0x3C, 0x46, 0x50, 0x5A, 0x64 }) }”h]”hX^Method (_BCL, 0, NotSerialized) { Return (Package (0x0C) { 0x64, 0x32, 0x0A, 0x14, 0x1E, 0x28, 0x32, 0x3C, 0x46, 0x50, 0x5A, 0x64 }) }”…””}”hj.sbah}”(h]”h ]”h"]”h$]”h&]”h±h²uh1j,hŸh³h K.hhçhžhubhÊ)”}”(hXThe first two levels are for when laptop are on AC or on battery and are not used by Linux currently. The remaining 10 levels are supported levels that we can choose from. The applicable index values are from 0 (that corresponds to the 0x0A brightness value) to 9 (that corresponds to the 0x64 brightness value) inclusive. Each of those index values is regarded as a "brightness level" indicator. Thus from the user space perspective the range of available brightness levels is from 0 to 9 (max_brightness) inclusive.”h]”hX The first two levels are for when laptop are on AC or on battery and are not used by Linux currently. The remaining 10 levels are supported levels that we can choose from. The applicable index values are from 0 (that corresponds to the 0x0A brightness value) to 9 (that corresponds to the 0x64 brightness value) inclusive. Each of those index values is regarded as a “brightness level†indicator. Thus from the user space perspective the range of available brightness levels is from 0 to 9 (max_brightness) inclusive.”…””}”(hj<hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KAhhçhžhubeh}”(h]”ŒBexport-a-sysfs-interface-for-user-space-to-control-backlight-level”ah ]”h"]”ŒBexport a sysfs interface for user space to control backlight level”ah$]”h&]”uh1h´hh¶hžhhŸh³h Kubhµ)”}”(hhh]”(hº)”}”(hŒ$Notify user space about hotkey event”h]”hŒ$Notify user space about hotkey event”…””}”(hjUhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hjRhžhhŸh³h KKubhÊ)”}”(hŒ9There are generally two cases for hotkey event reporting:”h]”hŒ9There are generally two cases for hotkey event reporting:”…””}”(hjchžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KMhjRhžhubhŒenumerated_list”“”)”}”(hhh]”hŒ list_item”“”)”}”(hXFFor some laptops, when user presses the hotkey, a scancode will be generated and sent to user space through the input device created by the keyboard driver as a key type input event, with proper remap, the following key code will appear to user space:: EV_KEY, KEY_BRIGHTNESSUP EV_KEY, KEY_BRIGHTNESSDOWN etc. ”h]”(hÊ)”}”(hŒüFor some laptops, when user presses the hotkey, a scancode will be generated and sent to user space through the input device created by the keyboard driver as a key type input event, with proper remap, the following key code will appear to user space::”h]”hŒûFor some laptops, when user presses the hotkey, a scancode will be generated and sent to user space through the input device created by the keyboard driver as a key type input event, with proper remap, the following key code will appear to user space:”…””}”(hj|hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KOhjxubj-)”}”(hŒ8EV_KEY, KEY_BRIGHTNESSUP EV_KEY, KEY_BRIGHTNESSDOWN etc.”h]”hŒ8EV_KEY, KEY_BRIGHTNESSUP EV_KEY, KEY_BRIGHTNESSDOWN etc.”…””}”hjŠsbah}”(h]”h ]”h"]”h$]”h&]”h±h²uh1j,hŸh³h KThjxubeh}”(h]”h ]”h"]”h$]”h&]”uh1jvhjshžhhŸh³h Nubah}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œ lowerroman”Œprefix”hŒsuffix”Œ)”uh1jqhjRhžhhŸh³h KOubhÊ)”}”(hŒlFor this case, ACPI video driver does not need to do anything(actually, it doesn't even know this happened).”h]”hŒnFor this case, ACPI video driver does not need to do anything(actually, it doesn’t even know this happened).”…””}”(hj©hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KXhjRhžhubjr)”}”(hhh]”jw)”}”(hXPFor some laptops, the press of the hotkey will not generate the scancode, instead, firmware will notify the video device ACPI node about the event. The event value is defined in the ACPI spec. ACPI video driver will generate an key type input event according to the notify value it received and send the event to user space through the input device it created: ===== ================== event keycode ===== ================== 0x86 KEY_BRIGHTNESSUP 0x87 KEY_BRIGHTNESSDOWN etc. ===== ================== ”h]”(hÊ)”}”(hXhFor some laptops, the press of the hotkey will not generate the scancode, instead, firmware will notify the video device ACPI node about the event. The event value is defined in the ACPI spec. ACPI video driver will generate an key type input event according to the notify value it received and send the event to user space through the input device it created:”h]”hXhFor some laptops, the press of the hotkey will not generate the scancode, instead, firmware will notify the video device ACPI node about the event. The event value is defined in the ACPI spec. ACPI video driver will generate an key type input event according to the notify value it received and send the event to user space through the input device it created:”…””}”(hj¾hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K[hjºubhŒ block_quote”“”)”}”(hŒÊ===== ================== event keycode ===== ================== 0x86 KEY_BRIGHTNESSUP 0x87 KEY_BRIGHTNESSDOWN etc. ===== ================== ”h]”hŒtable”“”)”}”(hhh]”hŒtgroup”“”)”}”(hhh]”(hŒcolspec”“”)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1jÜhjÙubjÝ)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1jÜhjÙubhŒthead”“”)”}”(hhh]”hŒrow”“”)”}”(hhh]”(hŒentry”“”)”}”(hhh]”hÊ)”}”(hŒevent”h]”hŒevent”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Kchjþubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjùubjý)”}”(hhh]”hÊ)”}”(hŒkeycode”h]”hŒkeycode”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Kchjubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjùubeh}”(h]”h ]”h"]”h$]”h&]”uh1j÷hjôubah}”(h]”h ]”h"]”h$]”h&]”uh1jòhjÙubhŒtbody”“”)”}”(hhh]”(jø)”}”(hhh]”(jý)”}”(hhh]”hÊ)”}”(hŒ0x86”h]”hŒ0x86”…””}”(hjChžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Kehj@ubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj=ubjý)”}”(hhh]”hÊ)”}”(hŒKEY_BRIGHTNESSUP”h]”hŒKEY_BRIGHTNESSUP”…””}”(hjZhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KehjWubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj=ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j÷hj:ubjø)”}”(hhh]”(jý)”}”(hhh]”hÊ)”}”(hŒ0x87”h]”hŒ0x87”…””}”(hjzhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Kfhjwubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjtubjý)”}”(hhh]”hÊ)”}”(hŒKEY_BRIGHTNESSDOWN”h]”hŒKEY_BRIGHTNESSDOWN”…””}”(hj‘hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KfhjŽubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjtubeh}”(h]”h ]”h"]”h$]”h&]”uh1j÷hj:ubjø)”}”(hhh]”(jý)”}”(hhh]”hÊ)”}”(hŒetc.”h]”hŒetc.”…””}”(hj±hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Kghj®ubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj«ubjý)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jühj«ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j÷hj:ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j8hjÙubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1j×hjÔubah}”(h]”h ]”h"]”h$]”h&]”uh1jÒhjÎubah}”(h]”h ]”h"]”h$]”h&]”uh1jÌhŸh³h Kbhjºubeh}”(h]”h ]”h"]”h$]”h&]”uh1jvhj·hžhhŸh³h Nubah}”(h]”h ]”h"]”h$]”h&]”j¤j¥j¦hj§j¨Œstart”Kuh1jqhjRhžhhŸh³h K[ubhÊ)”}”(hŒ5so this would lead to the same effect as case i) now.”h]”hŒ5so this would lead to the same effect as case i) now.”…””}”(hjúhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KjhjRhžhubhÊ)”}”(hŒhOnce user space tool receives this event, it can modify the backlight level through the sysfs interface.”h]”hŒhOnce user space tool receives this event, it can modify the backlight level through the sysfs interface.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KlhjRhžhubeh}”(h]”Œ$notify-user-space-about-hotkey-event”ah ]”h"]”Œ$notify user space about hotkey event”ah$]”h&]”uh1h´hh¶hžhhŸh³h KKubhµ)”}”(hhh]”(hº)”}”(hŒ$Change backlight level in the kernel”h]”hŒ$Change backlight level in the kernel”…””}”(hj!hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hjhžhhŸh³h KpubhÊ)”}”(hXPThis works for machines covered by case ii) in Section 2. Once the driver received a notification, it will set the backlight level accordingly. This does not affect the sending of event to user space, they are always sent to user space regardless of whether or not the video module controls the backlight level directly. This behaviour can be controlled through the brightness_switch_enabled module parameter as documented in admin-guide/kernel-parameters.rst. It is recommended to disable this behaviour once a GUI environment starts up and wants to have full control of the backlight level.”h]”hXPThis works for machines covered by case ii) in Section 2. Once the driver received a notification, it will set the backlight level accordingly. This does not affect the sending of event to user space, they are always sent to user space regardless of whether or not the video module controls the backlight level directly. This behaviour can be controlled through the brightness_switch_enabled module parameter as documented in admin-guide/kernel-parameters.rst. It is recommended to disable this behaviour once a GUI environment starts up and wants to have full control of the backlight level.”…””}”(hj/hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Krhjhžhubeh}”(h]”Œ$change-backlight-level-in-the-kernel”ah ]”h"]”Œ$change backlight level in the kernel”ah$]”h&]”uh1h´hh¶hžhhŸh³h Kpubeh}”(h]”Œacpi-video-extensions”ah ]”h"]”Œacpi video extensions”ah$]”h&]”uh1h´hhhžhhŸh³h Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”h³uh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(h¹NŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”jüŒfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”joŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”h³Œ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(jJjGjOjLjjjBj?uŒ nametypes”}”(jJ‰jO‰j‰jB‰uh}”(jGh¶jLhçjjRj?juŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”hŒsystem_message”“”)”}”(hhh]”hÊ)”}”(hŒ;Enumerated list start value not ordinal-1: "ii" (ordinal 2)”h]”hŒ?Enumerated list start value not ordinal-1: “ii†(ordinal 2)”…””}”(hjÖhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhjÓubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”ŒINFO”Œsource”h³Œline”Kuh1jÑhjRhžhhŸh³h K[ubaŒtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nhžhub.