€•­FŒ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Œ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 ”…””}”(hhõhžhhŸNh NubhŒliteral”“”)”}”(hŒ``**_id macros``”h]”hŒ **_id macros”…””}”(hhÿhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýhhõubhŒ is int. The type of ”…””}”(hhõhžhhŸNh Nubhþ)”}”(hŒ``**_cpumask macros``”h]”hŒ**_cpumask macros”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýhhõubhŒ is ”…””}”(hhõhžhhŸNh Nubhþ)”}”(hŒ``(const) struct cpumask *``”h]”hŒ(const) struct cpumask *”…””}”(hj#hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýhhõubhŒ). The latter correspond with appropriate ”…””}”(hhõhžhhŸNh Nubhþ)”}”(hŒ``**_siblings``”h]”hŒ **_siblings”…””}”(hj5hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýhhõubhŒa sysfs attributes (except for topology_sibling_cpumask() which corresponds with thread_siblings).”…””}”(hhõ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:”…””}”(hjMhž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¸)”}”(hjdh]”hŒ topology_physical_package_id: -1”…””}”(hjfhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K(hjbubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hj]hžhhŸh¶h Nubja)”}”(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)hjyubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hj]hžhhŸh¶h Nubja)”}”(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*hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hj]hžhhŸh¶h Nubja)”}”(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&]”uh1j`hj]hžhhŸh¶h Nubja)”}”(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&]”uh1j`hj]hžhhŸh¶h Nubja)”}”(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&]”uh1j`hj]hžhhŸh¶h Nubja)”}”(hŒ,topology_sibling_cpumask: just the given CPU”h]”h¸)”}”(hjîh]”hŒ,topology_sibling_cpumask: just the given CPU”…””}”(hjðhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K.hjìubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hj]hžhhŸh¶h Nubja)”}”(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&]”uh1j`hj]hžhhŸh¶h Nubja)”}”(hŒ,topology_cluster_cpumask: just the given CPU”h]”h¸)”}”(hjh]”hŒ,topology_cluster_cpumask: just the given CPU”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K0hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hj]hžhhŸh¶h Nubja)”}”(hŒ(topology_die_cpumask: just the given CPU”h]”h¸)”}”(hj3h]”hŒ(topology_die_cpumask: just the given CPU”…””}”(hj5hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K1hj1ubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hj]hžhhŸh¶h Nubja)”}”(hŒ*topology_book_cpumask: just the given CPU”h]”h¸)”}”(hjJh]”hŒ*topology_book_cpumask: just the given CPU”…””}”(hjLhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K2hjHubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hj]hžhhŸh¶h Nubja)”}”(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”…””}”(hjchžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K3hj_ubah}”(h]”h ]”h"]”h$]”h&]”uh1j`hj]hžhhŸh¶h Nubeh}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œarabic”Œprefix”hŒsuffix”Œ)”uh1j[hh£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 hjubj¡)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K:uh1j hjubhŒ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:”…””}”(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Œ·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]”…””}”(hjhž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»hj¸ubj¼)”}”(hhh]”(jÁ)”}”(hhh]”h¸)”}”(hŒonline:”h]”hŒonline:”…””}”(hj3hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KBhj0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj-ubjÁ)”}”(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]”…””}”(hjJhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KBhjGubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j»hj¸ubj¼)”}”(hhh]”(jÁ)”}”(hhh]”h¸)”}”(hŒ possible:”h]”hŒ possible:”…””}”(hjjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KDhjgubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjdubjÁ)”}”(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]”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KDhj~ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjdubeh}”(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¶hjubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1j›hj˜ubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhŸ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&]”hóhôuh1hã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.):”…””}”(hjhž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”…””}”hj#sbah}”(h]”h ]”h"]”h$]”h&]”hóhôuh1hã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.”…””}”(hj1hž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”jiŒ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”}”jDjAsŒ nametypes”}”jD‰sh}”jAh£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.