€•ÃGŒ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”Œ+/translations/zh_CN/admin-guide/cputopology”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/zh_TW/admin-guide/cputopology”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/it_IT/admin-guide/cputopology”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/ja_JP/admin-guide/cputopology”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/ko_KR/admin-guide/cputopology”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/pt_BR/admin-guide/cputopology”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/sp_SP/admin-guide/cputopology”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒ+How CPU topology info is exported via sysfs”h]”hŒ+How CPU topology info is exported via sysfs”…”�”}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhh·h²hh³ŒE/var/lib/git/docbuild/linux/Documentation/admin-guide/cputopology.rst”h´KubhŒ paragraph”“”)�”}”(hŒþCPU topology info is exported via sysfs. Items (attributes) are similar to /proc/cpuinfo output of some architectures. They reside in /sys/devices/system/cpu/cpuX/topology/. Please refer to the ABI file: Documentation/ABI/stable/sysfs-devices-system-cpu.”h]”hŒþCPU topology info is exported via sysfs. Items (attributes) are similar to /proc/cpuinfo output of some architectures. They reside in /sys/devices/system/cpu/cpuX/topology/. Please refer to the ABI file: Documentation/ABI/stable/sysfs-devices-system-cpu.”…”�”}”(hhÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubhÌ)�”}”(hŒéArchitecture-neutral, drivers/base/topology.c, exports these attributes. However the die, cluster, book, and drawer hierarchy related sysfs files will only be created if an architecture provides the related macros as described below.”h]”hŒéArchitecture-neutral, drivers/base/topology.c, exports these attributes. However the die, cluster, book, and drawer hierarchy related sysfs files will only be created if an architecture provides the related macros as described below.”…”�”}”(hhÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K hh·h²hubhÌ)�”}”(hŒpFor an architecture to support this feature, it must define some of these macros in include/asm-XXX/topology.h::”h]”hŒoFor an architecture to support this feature, it must define some of these macros in include/asm-XXX/topology.h:”…”�”}”(hhéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubhŒ literal_block”“”)�”}”(hXœ#define topology_physical_package_id(cpu) #define topology_die_id(cpu) #define topology_cluster_id(cpu) #define topology_core_id(cpu) #define topology_book_id(cpu) #define topology_drawer_id(cpu) #define topology_sibling_cpumask(cpu) #define topology_core_cpumask(cpu) #define topology_cluster_cpumask(cpu) #define topology_die_cpumask(cpu) #define topology_book_cpumask(cpu) #define topology_drawer_cpumask(cpu)”h]”hXœ#define topology_physical_package_id(cpu) #define topology_die_id(cpu) #define topology_cluster_id(cpu) #define topology_core_id(cpu) #define topology_book_id(cpu) #define topology_drawer_id(cpu) #define topology_sibling_cpumask(cpu) #define topology_core_cpumask(cpu) #define topology_cluster_cpumask(cpu) #define topology_die_cpumask(cpu) #define topology_book_cpumask(cpu) #define topology_drawer_cpumask(cpu)”…”�”}”hhùsbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1h÷h³hÊh´Khh·h²hubhÌ)�”}”(hŒÿThe type of ``**_id macros`` is int. The type of ``**_cpumask macros`` is ``(const) struct cpumask *``. The latter correspond with appropriate ``**_siblings`` sysfs attributes (except for topology_sibling_cpumask() which corresponds with thread_siblings).”h]”(hŒ The type of ”…”�”}”(hj h²hh³Nh´NubhŒliteral”“”)�”}”(hŒ``**_id macros``”h]”hŒ **_id macros”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubhŒ is int. The type of ”…”�”}”(hj h²hh³Nh´Nubj)�”}”(hŒ``**_cpumask macros``”h]”hŒ**_cpumask macros”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubhŒ is ”…”�”}”(hj h²hh³Nh´Nubj)�”}”(hŒ``(const) struct cpumask *``”h]”hŒ(const) struct cpumask *”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubhŒ). The latter correspond with appropriate ”…”�”}”(hj h²hh³Nh´Nubj)�”}”(hŒ``**_siblings``”h]”hŒ **_siblings”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubhŒa sysfs attributes (except for topology_sibling_cpumask() which corresponds with thread_siblings).”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubhÌ)�”}”(hŒ¬To be consistent on all architectures, include/linux/topology.h provides default definitions for any of the above macros that are not defined by include/asm-XXX/topology.h:”h]”hŒ¬To be consistent on all architectures, include/linux/topology.h provides default definitions for any of the above macros that are not defined by include/asm-XXX/topology.h:”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K$hh·h²hubhŒenumerated_list”“”)�”}”(hhh]”(hŒ list_item”“”)�”}”(hŒ topology_physical_package_id: -1”h]”hÌ)�”}”(hjxh]”hŒ topology_physical_package_id: -1”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K(hjvubah}”(h]”h ]”h"]”h$]”h&]”uh1jthjqh²hh³hÊh´Nubju)�”}”(hŒtopology_die_id: -1”h]”hÌ)�”}”(hj�h]”hŒtopology_die_id: -1”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K)hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jthjqh²hh³hÊh´Nubju)�”}”(hŒtopology_cluster_id: -1”h]”hÌ)�”}”(hj¦h]”hŒtopology_cluster_id: -1”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K*hj¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1jthjqh²hh³hÊh´Nubju)�”}”(hŒtopology_core_id: 0”h]”hÌ)�”}”(hj½h]”hŒtopology_core_id: 0”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K+hj»ubah}”(h]”h ]”h"]”h$]”h&]”uh1jthjqh²hh³hÊh´Nubju)�”}”(hŒtopology_book_id: -1”h]”hÌ)�”}”(hjÔh]”hŒtopology_book_id: -1”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K,hjÒubah}”(h]”h ]”h"]”h$]”h&]”uh1jthjqh²hh³hÊh´Nubju)�”}”(hŒtopology_drawer_id: -1”h]”hÌ)�”}”(hjëh]”hŒtopology_drawer_id: -1”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K-hjéubah}”(h]”h ]”h"]”h$]”h&]”uh1jthjqh²hh³hÊh´Nubju)�”}”(hŒ,topology_sibling_cpumask: just the given CPU”h]”hÌ)�”}”(hjh]”hŒ,topology_sibling_cpumask: just the given CPU”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K.hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jthjqh²hh³hÊh´Nubju)�”}”(hŒ)topology_core_cpumask: just the given CPU”h]”hÌ)�”}”(hjh]”hŒ)topology_core_cpumask: just the given CPU”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K/hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jthjqh²hh³hÊh´Nubju)�”}”(hŒ,topology_cluster_cpumask: just the given CPU”h]”hÌ)�”}”(hj0h]”hŒ,topology_cluster_cpumask: just the given CPU”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K0hj.ubah}”(h]”h ]”h"]”h$]”h&]”uh1jthjqh²hh³hÊh´Nubju)�”}”(hŒ(topology_die_cpumask: just the given CPU”h]”hÌ)�”}”(hjGh]”hŒ(topology_die_cpumask: just the given CPU”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K1hjEubah}”(h]”h ]”h"]”h$]”h&]”uh1jthjqh²hh³hÊh´Nubju)�”}”(hŒ*topology_book_cpumask: just the given CPU”h]”hÌ)�”}”(hj^h]”hŒ*topology_book_cpumask: just the given CPU”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K2hj\ubah}”(h]”h ]”h"]”h$]”h&]”uh1jthjqh²hh³hÊh´Nubju)�”}”(hŒ,topology_drawer_cpumask: just the given CPU ”h]”hÌ)�”}”(hŒ+topology_drawer_cpumask: just the given CPU”h]”hŒ+topology_drawer_cpumask: just the given CPU”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K3hjsubah}”(h]”h ]”h"]”h$]”h&]”uh1jthjqh²hh³hÊh´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œarabic”Œprefix”hŒsuffix”Œ)”uh1johh·h²hh³hÊh´K(ubhÌ)�”}”(hŒ¥Additionally, CPU topology information is provided under /sys/devices/system/cpu and includes these files. The internal source for the output is in brackets ("[]").”h]”hŒ©Additionally, CPU topology information is provided under /sys/devices/system/cpu and includes these files. The internal source for the output is in brackets (“[]â€�).”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K5hh·h²hubhŒ block_quote”“”)�”}”(hX =========== ========================================================== kernel_max: the maximum CPU index allowed by the kernel configuration. [NR_CPUS-1] offline: CPUs that are not online because they have been HOTPLUGGED off or exceed the limit of CPUs allowed by the kernel configuration (kernel_max above). [~cpu_online_mask + cpus >= NR_CPUS] online: CPUs that are online and being scheduled [cpu_online_mask] possible: CPUs that have been allocated resources and can be brought online if they are present. [cpu_possible_mask] present: CPUs that have been identified as being present in the system. [cpu_present_mask] =========== ========================================================== ”h]”hŒtable”“”)�”}”(hhh]”hŒtgroup”“”)�”}”(hhh]”(hŒcolspec”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K uh1j´hj±ubjµ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K:uh1j´hj±ubhŒtbody”“”)�”}”(hhh]”(hŒrow”“”)�”}”(hhh]”(hŒentry”“”)�”}”(hhh]”hÌ)�”}”(hŒ kernel_max:”h]”hŒ kernel_max:”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K:hjÖubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjÑubjÕ)�”}”(hhh]”hÌ)�”}”(hŒFthe maximum CPU index allowed by the kernel configuration. [NR_CPUS-1]”h]”hŒFthe maximum CPU index allowed by the kernel configuration. [NR_CPUS-1]”…”�”}”(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ÏhjÌubjÐ)�”}”(hhh]”(jÕ)�”}”(hhh]”hÌ)�”}”(hŒoffline:”h]”hŒoffline:”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K=hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhj ubjÕ)�”}”(hhh]”hÌ)�”}”(hŒ·CPUs that are not online because they have been HOTPLUGGED off or exceed the limit of CPUs allowed by the kernel configuration (kernel_max above). [~cpu_online_mask + cpus >= NR_CPUS]”h]”hŒ·CPUs that are not online because they have been HOTPLUGGED off or exceed the limit of CPUs allowed by the kernel configuration (kernel_max above). [~cpu_online_mask + cpus >= NR_CPUS]”…”�”}”(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ÏhjÌubjÐ)�”}”(hhh]”(jÕ)�”}”(hhh]”hÌ)�”}”(hŒonline:”h]”hŒonline:”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KBhjDubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjAubjÕ)�”}”(hhh]”hÌ)�”}”(hŒ:CPUs that are online and being scheduled [cpu_online_mask]”h]”hŒ:CPUs that are online and being scheduled [cpu_online_mask]”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KBhj[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjAubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÏhjÌubjÐ)�”}”(hhh]”(jÕ)�”}”(hhh]”hÌ)�”}”(hŒ possible:”h]”hŒ possible:”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KDhj{ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjxubjÕ)�”}”(hhh]”hÌ)�”}”(hŒjCPUs that have been allocated resources and can be brought online if they are present. [cpu_possible_mask]”h]”hŒjCPUs that have been allocated resources and can be brought online if they are present. [cpu_possible_mask]”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KDhj’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjxubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÏhjÌubjÐ)�”}”(hhh]”(jÕ)�”}”(hhh]”hÌ)�”}”(hŒpresent:”h]”hŒpresent:”…”�”}”(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ŒQCPUs that have been identified as being present in the system. [cpu_present_mask]”h]”hŒQCPUs that have been identified as being present in the system. [cpu_present_mask]”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KGhjÉubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhj¯ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÏhjÌubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÊhj±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´K9hh·h²hubhÌ)�”}”(hŒrThe format for the above output is compatible with cpulist_parse() [see ]. Some examples follow.”h]”hŒrThe format for the above output is compatible with cpulist_parse() [see ]. Some examples follow.”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KKhh·h²hubhÌ)�”}”(hX In this example, there are 64 CPUs in the system but cpus 32-63 exceed the kernel max which is limited to 0..31 by the NR_CPUS config option being 32. Note also that CPUs 2 and 4-31 are not online but could be brought online as they are both present and possible::”h]”hXIn this example, there are 64 CPUs in the system but cpus 32-63 exceed the kernel max which is limited to 0..31 by the NR_CPUS config option being 32. Note also that CPUs 2 and 4-31 are not online but could be brought online as they are both present and possible:”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KNhh·h²hubhø)�”}”(hŒ[kernel_max: 31 offline: 2,4-31,32-63 online: 0-1,3 possible: 0-31 present: 0-31”h]”hŒ[kernel_max: 31 offline: 2,4-31,32-63 online: 0-1,3 possible: 0-31 present: 0-31”…”�”}”hjsbah}”(h]”h ]”h"]”h$]”h&]”jjuh1h÷h³hÊh´KShh·h²hubhÌ)�”}”(hŒÝIn this example, the NR_CPUS config option is 128, but the kernel was started with possible_cpus=144. There are 4 CPUs in the system and cpu2 was manually taken offline (and is the only CPU that can be brought online.)::”h]”hŒÜIn this example, the NR_CPUS config option is 128, but the kernel was started with possible_cpus=144. There are 4 CPUs in the system and cpu2 was manually taken offline (and is the only CPU that can be brought online.):”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KYhh·h²hubhø)�”}”(hŒ_kernel_max: 127 offline: 2,4-127,128-143 online: 0-1,3 possible: 0-127 present: 0-3”h]”hŒ_kernel_max: 127 offline: 2,4-127,128-143 online: 0-1,3 possible: 0-127 present: 0-3”…”�”}”hj7sbah}”(h]”h ]”h"]”h$]”h&]”jjuh1h÷h³hÊh´K^hh·h²hubhÌ)�”}”(hŒ�See Documentation/core-api/cpu_hotplug.rst for the possible_cpus=NUM kernel start parameter as well as more information on the various cpumasks.”h]”hŒ�See Documentation/core-api/cpu_hotplug.rst for the possible_cpus=NUM kernel start parameter as well as more information on the various cpumasks.”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kdhh·h²hubeh}”(h]”Œ+how-cpu-topology-info-is-exported-via-sysfs”ah ]”h"]”Œ+how cpu topology info is exported via sysfs”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”j}Œ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”}”jXjUsŒ nametypes”}”jX‰sh}”jUh·sŒ 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”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.